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

 

posted @ 2015-08-21 00:13  Yxh_blogs  阅读(271)  评论(0编辑  收藏  举报