美文网首页
6.正则捕获的贪婪性及解决方案

6.正则捕获的贪婪性及解决方案

作者: 追马的时间种草 | 来源:发表于2019-10-20 10:40 被阅读0次

上一篇:正则捕获的懒惰性及解决方案


正则捕获的贪婪性及解决方案


  • let str='shang{2019}xiao{2020}lin{2021}'
    let reg=/\{(\d+)\}/g //{}在正则中有特殊含义。需转译
    console.log(reg.exec(str))// ["{2019}", "2019", index: 5, input: "shang{2019}xiao{2020}lin", groups: undefined]
        //在正则不活的时候,如果正则存在分组,捕获的时候不仅仅把大正则的字符捕获到(数组第一项),而且把小分组匹配的内容也单独抽取出来(数组的第二项开始)
        //但是在小分组中加'?:'可组织分组捕获.   '?:'值匹配不捕获
    let reg=/\{(?:\d+)\}/g 
    console.log(reg.exec(str))//["{2019}", index: 5, input: "shang{2019}xiao{2020}lin{2021}", groups: undefined]
    
  • match捕获方法的局限性

    let str='shang{2019}xiao{2020}lin{2021}'
    let reg=/\{(\d+)\}/g
    console.log(str.match(reg));//["{2019}", "{2020}", "{2021}"]
      //=>match局限性:在正则设置了G的情况下,基于MATCH捕获的内容只有大正则匹配的,小分组没有抽取出来
    
    //不设置G的情况下
    let reg=/\{(\d+)\}/
    console.log(str.match(reg))//["{2019}", index: 5, input: "shang{2019}xiao{2020}lin{2021}", groups: undefined]  结果还会和不用matchde 时候一样
    
  • 贪婪性及解决方法(加‘?’)

    // 正则捕获具备贪婪性:每一次捕获的时候,总是捕获到和正则匹配中zui长的内容  例如:‘2’也符合/\d+/,'2019'也符合。但是捕获到的事最长的‘2019’……
    let str='shang2019xiao2020lin2021'
    let reg=/\d+/g
    console.log(reg.exec(str))//["2019", index: 5, input: "shang2019xiao2020lin2021", groups: undefined]
    
    //解决方法
    let reg=/\d+?/g;// 把‘?’放到量词的后边,代表的就不是 出现0~1次了,而且取消了捕获的贪婪性
    console.log(reg.exec(str))//["2", index: 5, input: "shang2019xiao2020lin2021", groups: undefined]
    

下一篇:‘?’在正则中的作用

相关文章

  • 6.正则捕获的贪婪性及解决方案

    上一篇:正则捕获的懒惰性及解决方案 正则捕获的贪婪性及解决方案 let str='shang{2019}xiao{...

  • 7.‘?’在正则中的作用

    上一篇:正则捕获的贪婪性及解决方案 量词元字符出现0~1次/-?/让‘-’出现1次或者不出现 取消贪婪性\d+?捕...

  • 正则03

    one 利用正则来区分密码的强弱程度 效果如下图 two 正则捕获的贪婪性的了解 three 正则的常用方法

  • 5.正则捕获的懒惰性及解决方案

    上一篇:常用正则表达式 正则捕获的懒惰性及解决方案 正则捕获​ :把一个字符串和正则匹配的部分获取到​ [正则方法...

  • JS正则捕获的贪婪性

    问号在正则中的五大作用:问号左边是非量词元字符:本身代表量词元字符,出现零到一次;问号左边是量词元字符:取消捕获时...

  • javascript正则表达式(四)

    正则捕获的贪婪性 问号的5个作用1.问号左边是非量词元字符: ?本身代表量词元字符, 出现零到一次问号左边是量词元...

  • java正则使用

    正则切割 正则捕获 正则完全匹配

  • javascript正则表达式 execAll的实现 ----

    正则的捕获 实现正则捕获的方法 正则RegExp.prototype上的方法exectest 字符串String....

  • 正则:分组

    正则分组作用: 1、改变优先级:2、分组引用 3、分组捕获:正则在捕获的时候,不仅把大正则匹配的内容捕获到,而且还...

  • 正则表达式

    javascript正则表达式正则表达式30分钟入门教程js的正则表达式的正则前瞻(?=)和非捕获性分组(?:)有...

网友评论

      本文标题:6.正则捕获的贪婪性及解决方案

      本文链接:https://www.haomeiwen.com/subject/rwimmctx.html