正则捕获的细节及replace分析

Posted shangjun6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则捕获的细节及replace分析相关的知识,希望对你有一定的参考价值。

  1.var reg=/./与var reg=/./的区别?

  前者代表任意一个字符,

  后者代表这个字符串中得有一个点

  2.?的使用

  如果单独的一个字符后面带?

  代表1个或0个这个字符的出现;  列如: /d?/

  如果量词+后面带?  取消正则的贪婪性  在捕获的阶段

  3.捕获:

  1.普通捕获  正则的方法exec()  字符串的方法match()

    普通捕获有懒惰性:

    给正则添加一个修饰符g,可以解决;

    match是将所有捕获的内容放在一个数组中,并返回,match就是exec()对函数的简单封装

  2.分组捕获:还是正则的方法exec() 字符串的方法match()

    只不过正则结构发生了变化加()     (分两种捕获,全局和非全局)

  非全局  var reg=/(a)(b)/  exec()和match()在非全局下分组捕获相同的,分组捕获在捕获的过程中,即捕获大正则的内容,也捕获分组中的内容,并返回

  全局   var reg=/(a)(b)/g  exec()和match()在全局下的分组捕获是不一样的,exec()不变,但是match()只捕获  

  

以上是关于正则捕获的细节及replace分析的主要内容,如果未能解决你的问题,请参考以下文章

REGEXP_REPLACE 捕获组

Postgres regexp_replace:无法用第一个捕获的组替换源文本

JAVA中string.replace和string.replaceAll的区别及用法

JAVA中string.replace和string.replaceAll的区别及用法

pandas.DataFrame.replace 用通配符

Ruby 用捕获的正则表达式模式替换字符串