千家信息网

JS之正则表达式懒惰性和贪婪性的示例分析

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要为大家展示了"JS之正则表达式懒惰性和贪婪性的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"JS之正则表达式懒惰性和贪婪性的示例分析"
千家信息网最后更新 2026年10月31日JS之正则表达式懒惰性和贪婪性的示例分析

这篇文章主要为大家展示了"JS之正则表达式懒惰性和贪婪性的示例分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"JS之正则表达式懒惰性和贪婪性的示例分析"这篇文章吧。

exec - > 正则的捕获

每一次捕获的时候都是先进行默认的匹配,如果没有匹配成功的,捕获的结果是null;只有有匹配的内容我们才能捕获到;

捕获的内容格式

1、捕获到的内容是一个数组,数组中的第一项是当前正则捕获的内容

  index:捕获内容在字符串中开始的索引位置

  input:捕获的原始字符串

var reg = /\d+/;var str = 'woshi2016ni2017';var res = reg.exec(str);console.log(res) // ['2016',index:5,input:'woshi2016ni2017']//第二次通过exec捕获的内容还是第一个"2016"var res = reg.exec(str);console.log(res) // ['2016',index:5,input:'woshi2016ni2017']

2、正则捕获的特点

  1)、懒惰性->每一次执行exec只捕获第一个匹配的内容,在不进行任何处理的情况下,在执行多次捕获,捕获的还是第一个匹配的内容。

  lastIndex:是正则每一次捕获在字符串中开始查找的位置,默认值为0

  2)、如何解决懒惰性?在正则的末尾加一个修饰符"g"

  修饰符:g、i、m

  global(g):全局匹配

  ignoreCase(i):忽略大小写匹配

  multiline(m):多行匹配  

var reg = /\d/g;var str = 'woshi2016ni2017';console.log(reg.lastIndex)console.log(reg.exec(str))

  原理:加了全局修饰符g,正则每一次捕获结束后,我们的lastIndex的值都变成了最新的值,下一次捕获从最新的位置开始查找,这样就可以把所有需要捕获的内容都获取到了

  3)、自己编写程序获取正则捕获的所有的内容(一定不要忘了加g)

var reg = /\d+/g;    var str = 'aswofde2015xsewde2016awdefer2017';    var ary = [];    var res = reg.exec(str);    while(res){      ary.push(res[0])      res = reg.exec(str);    }    console.log(ary)//[2015,2016,2017]

  4)、贪婪性 正则的每一次捕获都是按照匹配最长的结果捕获的,例如:2符合正则、2015也符合正则,我们默认捕获的是2015

  5)、如何解决正则的贪婪性 ->在量词元字符后面添加一个?即可 

var reg = /\d+?/g;    var str = 'aswofde2015xsewde2016awdefer2017';    console.log(reg.exec(str));

  ?在正则中有很多的作用:

  放在一个普通的元字符后面代表出现0-1次 /\d?/ ->数字可能出现也可能不出现

  放在一个量词的元字符后面是取消捕获时候的贪婪性

3、字符串中的match方法->把所有和正则匹配的字符都获取到  

var reg = /\d+?/g;    var str = 'aswofde2015xsewde2016awdefer2017';    var ary = str.match(reg);//[2,0,1,5,2,0,1,6,2,0,1,7]

虽然在当前的情况下match比我们的exec更加的简便一些,但是match中存在一些自己处理不了的问题,在分组的捕获的情况下,match只能捕获大正则匹配的内容,而对于小正则捕获的内容是无法获取的

以上是"JS之正则表达式懒惰性和贪婪性的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

正则 内容 贪婪 懒惰 字符 字符串 示例 表达式 分析 位置 元字符 情况 篇文章 全局 数组 时候 结果 还是 量词 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网 科技创业 互联网科技作文 嘟嘟瓜互联网科技 互联网科技宣传片 互联网科技公司需要的职位 随着互联网科技发展 顶级互联网科技成果有哪些 宁夏科技产业互联网案例 互联网和黑科技的看法 崇明区互联网教育科技诚信经营 中国科技创新与世界互联网大会 浙南科技城互联网大厦建设工程 用友工业互联网科技发展 卓翼科技产业互联网合作 南通创西澳互联网科技有限公司 美国互联网科技公司 广州有谷有贝互联网科技有限公司 信承诺互联网科技有限公司 数字互联网科技有限公司 科技美学互联网 艺术 小米移动互联网科技园 科技互联网项目 有木互联网科技 中国最先进互联网科技公司 安控科技rtu产品工业互联网 岳阳华臻互联网科技有限公司 想开互联网科技公司怎么样 互联网科技的全部知识 有人说阿里系是互联网科技企业 半导体行业属于互联网高科技类吗
0