zoukankan      html  css  js  c++  java
  • 深入理解正则反引用和转义符

    一、正则反引用

    正则表达式,在PHP中我经常能用到。用的场景也很多,比如,正则匹配字符串,判断字符是否存在,正则替换等等。

    例子一:

    $string = 'abcd';
    $re = preg_replace('/(a)/', '1A',$string);
    echo $re;
    
    //结果
    // aAbcd

    这里用到了正则的捕获组概念和反引用。

    解释:

    捕获组我们可以从第一个`(` 向后数, 第一个括号里面匹配到的内容,我们可以用 1 来引用,为了看的明显,特意拼接了 `A` ,其实我们还可以用 $+数字来表示第几个捕获组。 这里可以用$1,效果和1一样。

    例子二:

    $string = 'abcd';
    $re = preg_replace('/(a)/', '$1B',$string);
    echo $re;
    
    
    //结果
    //aBbcd

    二、转义符

    什么是转义符?

    在PHP中我们用 `` 来转译一些特殊的字符。

    例子三:

    $string = 'abcd';
    $re = preg_replace('/(a)/', '1B',$string);
    echo $re;
    
    //结果
    //aBbcd    

    解释: 这里的 1 把是作为捕获组的反引用。

    例子四:

    $string = 'abcd';
    $re = preg_replace('/(a)/', '\1B',$string);
    echo $re;
    
    //结果
    //aBcd

    解释:这里的` \1 `,第一个``,转译了第二个``, 那么就成了 `1B` , 其实效果和例子三的 `1` 是一样的。

    例子五:

    $string = 'abcd';
    $re = preg_replace('/(a)/', '\1B',$string);
    echo $re;
    
    
    
    //结果
    //1Bbcd

    解释:这里的`\1`,第一个``,转译了第二个``,那么就剩下了`\1`,`\` 输出 ``,最后,就剩下 `1`了。

    三、总结

    1、PHP正则中的反引用,1$1 效果是一样的,我们都可以拿来用。

    2、PHP正则中的转义符,当遇到多个`` 的时候,我们可以先"去掉" 一个,然后,在去匹配。这样就好理解啦。

  • 相关阅读:
    win 10安装 wamp 丢失msvcr110.dll 解决办法
    技巧——快读快写
    考前一些复习东东
    2019.11月4日模拟赛(早)
    2019 年 10 月训练赛(10.30早)
    2019 年 10 月训练赛(10.30晚)
    NOIP 鸡王争霸赛
    2019 10.3模拟
    CSP考纲及高精度计算
    CCF 全国信息学奥林匹克联赛复赛模拟
  • 原文地址:https://www.cnblogs.com/cleverstone/p/9529264.html
Copyright © 2011-2022 走看看