来自 澳门金莎娱乐手机版 2019-09-27 01:08 的文章
当前位置: 金沙澳门官网网址 > 澳门金莎娱乐手机版 > 正文

正则表明式常用函数

ereg()
ereg_replace()
eregi()
eregi_replace()
split()

1.preg_match()

(1)ereg,eregi
那是标准表达式相配函数,前面一个是大小写关于相配,前面一个则是风马牛不相干的.
用法:
ereg(正规表明式,字符串,[同盟部分数组名]);
PHP3.0中的正规表明式大要类似于grep中用的.
(2)ereg_replace,eregi_replace
这一个是替换函数.
用法:
ereg_replace(正规表明式,替换串,原字符串);
字符串处理函数中有一个strtr,是"翻译"函数,类似于Perl中的tr/.../.../,
用法:
strtr(字符串,"从","到");
例如:
strtr("aaabb","ab","cd")返回"cccdd".
(3)split
与explode函数某个周围,但此番可以在相配某正规表明式的地点分割字符串.
用法:
split(正规表明式,字符串,[收取前有个别项]);  

函数原型:int preg_match (string $pattern, string $content [, array $matches])
preg_match ()函数在$content字符串中寻找与$pattern给出的正则表明式相相称的原委。如若提供了$matches,则将相称结果归入在那之中。$matches[0]将含有与成套方式相称的文书,$matches[1]将含有第二个捕获的与括号中的方式单元所相称的从头到尾的经过,就那样类推。该函数只 作二次相配,最后再次回到0或1的相称结果数。代码6.1付给preg_match()函数的一段代码示例。
代码6.1 日期时间的合营
代码如下:

<?php 
//需要匹配的字符串。date函数返回当前时间 
$content = "Current date and time is ".date("Y-m-d h:i a").", we are learning PHP together."; 
//使用通常的方法匹配时间 
if (preg_match ("//d{4}-/d{2}-/d{2} /d{2}:/d{2} [ap]m/", $content, $m)) 
{ 
echo "匹配的时间是:" .$m[0]. "/n"; 
} 
//由于时间的模式明显,也可以简单的匹配 
if (preg_match ("/([/d-]{10}) ([/d:]{5} [ap]m)/", $content, $m)) 
{ 
echo "当前日期是:" .$m[1]. "/n"; 
echo "当前时间是:" .$m[2]. "/n"; 
} 
?>

那是三个总结动态文本串相称实例。假如当前系统时间是“二〇〇七年二月二15日13点25分”,将出口如下的剧情。
合作的年月是:二〇〇六-08-17 01:25 pm
目后天期是:二零零五-08-17
日前时间是:01:25 pm

2.ereg()和eregi()

ereg()是POSIX扩大库中正则表明式的相称函数。eregi()是ereg()函数的概略大小写的版 本。二者与preg_match的功效类似,但函数再次回到的是二个布尔值,表明合作成功与否。须要申明的是,POSIX扩张库函数的率先个参数接受的是正则 表明式字符串,即无需接纳分界符。比如,代码6.2是四个有关文件名安全查验的章程。
代码6.2 文件名的平安查证
代码如下:

<?php 
$username = $_SERVER['REMOTE_USER']; 
$filename = $_GET['file']; 
//对文件名进行过滤,以保证系统安全 
if (!ereg('^[^./][^/]*$', $userfile)) 
{ 
die('这不是一个非法的文件名!'); 
} 
//对用户名进行过滤 
if (!ereg('^[^./][^/]*$', $username)) 
{ 
die('这不是一个无效的用户名'); 
} 
//通过安全过滤,拼合文件路径 
$thefile = "/home/$username/$filename"; 
?>

万般状态下,使用与Perl宽容的正则表明式相称函数perg_match(),将比使用ereg()或eregi()的快慢更加快。如若只是探求贰个字符串中是否包涵某些子字符串,提议选拔strstr()或strpos()函数。

正则表达式的替换

1.ereg_replace()和eregi_replace()

函数原型:string ereg_澳门金莎娱乐手机版 ,replace (string $pattern, string $replacement, string $string)
string eregi_replace (string $pattern, string $replacement, string $string)
ereg_replace()在$string中查找形式字符串$pattern,并将所相称结果替换 为$replacement。当$pattern中蕴藏情势单元(或子形式)时,$replacement中形如“/1”或“$1”的职位将依次被那些子 情势所相称的内容替换。而“/0”或“$0”是指任何的相配字符串的情节。必要专心的是,在双引号中反斜线作为转义符使用,所以必得选取“//0”,“ //1”的样式。
eregi_replace()和ereg_replace()的成效雷同,只是前面叁个忽略大小写。代码6.6是本函数的采用实例,这段代码演示了哪些对程序源代码做轻巧的清理职业。
代码6.6 源代码的清理
代码如下:

本文由金沙澳门官网网址发布于澳门金莎娱乐手机版,转载请注明出处:正则表明式常用函数

关键词: