纵有疾风起
人生不言弃

PHP正则表达式中的元字符的功能详细介绍

<?php
    /*        元字符:用来修饰原子,不能单独出现
            *    :用来修饰前面的原子出现的次数为0、1或多次;
            +    :用来修饰前面的原子出现的次数为1次或多次;
            ?    :用来修饰前面的原子出现的次数为0、1次;
            {2}    :用来修饰前面的原子出现的次数为2次,且必须是连续的;
            {2,5}:用来修饰前面的原子出现的次数为2-5次之间,且包含2和5;
            {2,}:用来修饰前面的原子出现的次数为大于等于2次;
            {,4}:这种用法是错误的,不支持这样用    
            |    :匹配两边的原子任意一个是否出现,由于|的优先级比较低,所以两边可以放字符串不加括号
            ^和\A:修饰前面的原子是否位于字符串开头,必须放在正则表达式的最前面
            $和\Z:修饰前面的原子是否位于字符串结尾,必须放在正则表达式的最后面
            \b:匹配单词边界
            \B:匹配非单词边界
            ()的作用:1.改变优先级
                     2.将小原子变成大原子
                     3.子模式:每个小括号都是一个独立的子模式
                     4.反引用:取前面子模式中所匹配上的原子;
                               在子模式括号中使用?:则可以取消引用;
    */

    
    $str=”ai2@!244*&6779999&%8%8$$#$##”;
    //匹配9出现的次数是否介于1到4之间
    $pat=”/9{1,4}/”;
    if(preg_match($pat,$str,$arr)){
        echo “正则表达式<b>$pat</b>和字符串<b>$str</b>匹配成功!<br>”;
        print_r($arr);
        echo “<br>”;
    }
    else{
        echo “匹配不成功!<br>”;
    }
    
    $str=”ai2@24 is 4*&67abc7999is 9&%8% is8$$#$##”;
    //匹配3和#其中的一个是否有出现过,注意别忘了特殊字符要加转义符号
    $pat=”/3|#/”;
    //匹配ad和abc其中的一个是否有出现过
    $pat1=”/ad|abc/”;
    //匹配字符串是否以ai开头以##结尾
    $pat2=”/^ai.*##$/”;
    //匹配字符串中有单词边界的字符
    $pat3=”/\bis\b/”;
    if(preg_match($pat3,$str,$arr)){
        echo “正则表达式<b>$pat3</b>和字符串<b>$str</b>匹配成功!<br>”;
        print_r($arr);
        echo “<br>”;
    }
    else{
        echo “匹配不成功!<br>”;
    }
    
    $str=’this apad 2017-07-21 ivngix http://www.abc.def.com.cn isapache wapacheeb’;    
    //改变优先级:不加括号匹配两边的整体原子,加上括号,只匹配括号中的
    $pat=”/apa(che|div)ngix/”;
    //小原子变大原子:不加括号只匹配*号之前的原子,加上括号后匹配括号整体出现的次数
    $pat1=”/(apa)*/”;
    //子模式:每一个小括号都是一个单独的子模式
    $pat2=”/(http|ftp|https|telnet)\:\/\/(www|ftp|mail)(.*)?\.(com|cn|net|org)/”;
    //反向引用:用\1取出子模式(\-|\/)的原子,此处\1的1指的是属于正则中的第几个子模式就用相应的数字来表示引用
    $pat3=”/\d{4}(\-|\/)\d{2}\\1\d{2}/”;
    
    if(preg_match($pat3,$str,$arr)){
        echo “正则表达式<b>$pat3</b>和字符串<b>$str</b>匹配成功!<br>”;
        print_r($arr);
        echo “<br>”;
    }
    else{
        echo “匹配不成功!<br>”;
    }
?>

原文链接:https://blog.csdn.net/living_ren/article/details/75669800

本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。

未经允许不得转载:起风网 » PHP正则表达式中的元字符的功能详细介绍
分享到: 生成海报

评论 抢沙发

评论前必须登录!

立即登录