如何理解php的正则表达式
创始人
2024-12-22 02:00:52
0次
1、通用原子:

    \d : 数字。 \D : 除了数字。

    \w : 数字,字母,下划线。\W : 除了数字,字母,下划线。

    \s : 空白符 。 \S : 除了空白符 。

    2、元字符:

      . :除了换行以外的所有字符

      * : 匹配前面的内容出现 0 次及以上。

      ? :匹配前面的内容出现 0 次或 1 次。

      + : 出现一次或多次。

      ^ : 必须以它开头。

      $ : 必须以它结尾。

      {n} : 恰巧出现 n 次。

      {n,} : 大于等于 n 次。

      {n,m} : 大于等于 n, 小于等于 m.

      [] : 是一个集合,匹配中括号中的任意一个字符,如:[abc]即为匹配a或b或者c。

      () : 后项引用或者是当做一个整体。

      [^]:取反。

      | : 或者

      [-] : 代表一个范围,如[0-9],匹配即为 0123456789

      3、模式修正符

        i:不区分大小写。

        m:将字符串通过分隔符进行分割,将字符串中的每一行分别进行匹配。

        e: 将匹配出来的内容做一些php语法上的处理。

        s: 修正 "." 的换行。

        U: 取消贪婪模式。

        x: 忽略模式中的空白符。

        A: 必须以这个模式开头。

        D: 修正 "$" 对 "\n" 的忽略。

        u: 做 utf-8 中文匹配的时候使用。

        g:该表达式可以进行全局匹配。

        示例:

        现在需要正则验证一个input框,我想输入的是非整数就自动变成空值。

        正则如下;

        #不加入/g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行返回第二个匹配,依次类推。#/[^0-9]/g,这个正则表达式的意思是全局匹配非数字类型和非-的字符。/[^0-9|-]/g

        匹配到该正则后,就将input的值置空即可。

        二、后项引用

        如果想只去除掉b标签,只保留里面的字符串,这里就需要用到后项引用。怎么样后项引用呢,就是将.* 括起来,然后在匹配的时候,写上\1,\1 代表第一个括号里面匹配到的内容,当然为了防止 \ 将 1 转义掉,所以我们使用\\1 .

        三、贪婪模式

        我们这是想匹配到每一个 b 标签,即abc和bcd,

        //如果使用下面的正则来匹配的话,会匹配出abcbcd.$pattern='/.*<\/b>/';

        所以此处我们要使用.*?来取消贪婪,?代表匹配前面的内容 0 次或者 1次。

        //正则表达式改为$pattern='/.*?/';//当然取消贪婪还有一种写法:就是在后面加上一个U,即:$pattern='/.*/U';

        但是切记不能 .*? 和 U 一起用。

        四、延伸重点

        1、常见PCRE函数

        2、中文匹配

        示例:

        $str = '中文';

        a、使用utf-8匹配中文:

        $pattern='/[\x{4e00}-\x{9fa5}]+/u';

        b、使用GB2312匹配中文:

        $pattern='/['.chr(0xb0).'-'.chr(0xf7).']['.chr(0xa1).'-'.chr(0xfe).']/';preg_match($pattern,$str,$match);

        3、写正则表达式的思路

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...