zoukankan      html  css  js  c++  java
  • 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
    abcbac";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    
    匹配成功abc

    s 将转义回车取消是为单行匹配如 . 匹配的时候

     例如:

    <?php
        $mode="/a(.*)bc/s"; //加上模式修饰符 s 可忽视 
     直接匹配 a
    bc。
        $str="agooglea
    bcbac";
        $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
    bcbac";
        $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
    abcbac";
        $flag=preg_match($mode, $str, $arr);
        //print_r($arr);
        if($flag){
            echo "匹配成功".$arr[0];    
        }else{
            echo "匹配失败";
        }
    ?> 
    
    输出:
    匹配成功abc

    D 强制$匹配尾部无任何内容

    例如:

    <?php
        $mode="/abc$/D";  //加上模式修正符 D $匹配时尾部不允许有 
    
        $str="abcgooglea
    abc
    ";
        $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

  • 相关阅读:
    hdu 4813(2013长春现场赛A题)
    NEFU 628 Garden visiting (数论)
    FZU 2020 组合 (Lucas定理)
    HDU 3304 Interesting Yang Yui Triangle (Lucas定理)
    HDU 3037 Saving Beans (数论,Lucas定理)
    UVa 1161 Objective: Berlin (最大流)
    Vijos P1951 玄武密码 (AC自动机)
    LA 4670 Dominating Patterns (AC自动机)
    HDU 2340 Obfuscation (暴力)
    HDU 5510 Bazinga (KMP)
  • 原文地址:https://www.cnblogs.com/yxhblogs/p/4746549.html
Copyright © 2011-2022 走看看