PHP中正则表达式学习及应用(三)
正则表达式中的“模式修正符”
1、运算顺序 2、模式修正符
i 正则内容在匹配时候不区分大小写(默认是区分的)
例如:
<?php $mode="/[a-z]/i"; //加上模式修正符 i 不区分大小写 $str="G"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功G
m 在匹配首内容或者尾内容时候采用多行识别匹配
例如:
<?php $mode="/^abc/m"; //加上模式修饰符 m 可识别多行,并不局限于第一行的首部,或者尾部。 $str="google\nabcbac"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功abc
s 将转义回车取消是为单行匹配如 . 匹配的时候
例如:
<?php $mode="/a(.*)bc/s"; //加上模式修饰符 s 可忽视 \n 直接匹配 a\nbc。 $str="agooglea\nbcbac"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功agooglea bc
x 忽略正则中的空白
例如:
<?php $mode="/a bc/x"; //加上模式修饰符 x 可忽略掉正则表达式里的空格 $str="abcgooglea\nbcbac"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功abc
A 强制从头开始匹配
例如:
<?php $mode="/abc/A"; //加上模式修正符 A 强制从头开始匹配 $str="abcgooglea\nabcbac"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配成功abc
D 强制$匹配尾部无任何内容 \n
例如:
<?php $mode="/abc$/D"; //加上模式修正符 D $匹配时尾部不允许有 \n $str="abcgooglea\nabc\n"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; }else{ echo "匹配失败"; } ?> 输出: 匹配失败
U 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束, 常用在采集程序上的正则表达式
<?php $mode="/<(.*)>/U"; //加上模式修正符 U 只跟踪到最近的一个匹配符并结束。 $str="ppp<b>sss</b>pppp"; $flag=preg_match($mode, $str, $arr); //print_r($arr); if($flag){ echo "匹配成功".$arr[0]; print_r($arr); }else{ echo "匹配失败"; } ?> 输出: 匹配成功 Array ( [0] => [1] => b )
PHP中正则表达式学习及应用(三)
本节内容的视频教程:链接: http://pan.baidu.com/s/1dD2iajf 密码: 3u33