zoukankan      html  css  js  c++  java
  • 理解正则 的 ?! ?:

    http://www.qdfuns.com/notes/17398/22e58fdb7d8b2208b87f908bc3d6af51.html

    var string = "123abc321";
    var result = string.replace(/(?!d)/g, '#');
    console.log(result);
    //=>123#a#b#c321#

    比如 PHP 手册里 有个 正则替换的函数 preg_replace 有的列子

    $string = 'April 15, 2003';
    $pattern = '/(w+) (d+), (d+)/i';
    $replacement = '${1}1,$3';
    echo preg_replace($pattern, $replacement, $string);
    // 结果显示 April1,2003

    这里就用上了 反响引用
    $replacement 里的 ${1} 代表 (w+) , $3代表 第2个 (d+)
    这个正则表达式 里 一共有 3个 () 也就是 可以 用 $1 $2 $3 调用 3个()里的 内容。

    也可以使用 1 2 3 来 代替 $1 $2 $3 都是一样的

    那接下来 如果把 代码里的 正则表达式 改成下面的

    $pattern = '/(?:w+) (?:d+), (d+)/i';
    那 这里 只有 一个 () 里的 内容 能使用
    带 ?:的 ()里面内容是不会被 捕获的 ,所以 只能使用 $1 代表最后的 (d+)
  • 相关阅读:
    tensorflow实践学习一
    计算CPU的MIPS
    计算机原理一
    SecureCRT连接虚拟机失败及虚拟机ping不通外网
    03.os
    02.random
    01.time
    01.面试过程中其他问题
    06.秒杀系统架构
    05.项目并发分析
  • 原文地址:https://www.cnblogs.com/dhsz/p/6272831.html
Copyright © 2011-2022 走看看