码迷,mamicode.com
首页 > Web开发 > 详细

PHP中正则表达式学习及应用(三)

时间:2015-08-21 01:47:57      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

正则表达式中的“模式修正符”

 

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 )

 

 

 

若有疑问请联系:QQ 907811190
 
施主、赏个糖吃ma(☆_☆)/~~ (☆_☆)/~~。。。。
技术分享技术分享
支付宝账号:907811190@qq.com

PHP中正则表达式学习及应用(三)

标签:

原文地址:http://www.cnblogs.com/yxhblogs/p/4746549.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!