贪婪模式跟非贪婪模式

来源:2-7 JS正则贪婪模式与非贪婪模式

浅学辄止

2016-09-14 10:53

‘12345678’.replace(/\d{3,6}/g,'x')结果:X78

‘12345678’.replace(/\d{3,6}?/g,'x')结果:XX78

x的数量不一样,我想请问下是不是代表着匹配的次数

写回答 关注

2回答

  • psmaster
    2016-10-12 22:25:45

    第一次贪婪模式,尽可能多的匹配,匹配了6个数字,所以只剩下78两个,不符合至少3次的要求,所以不再进行匹配,第二次取消了贪婪模式,匹配了3个数字就停止了,但又是全文匹配,会接着继续匹配了3个数字,最后省下78也不符号至少3次的要求,所以变成xx78。

    要点,1全文匹配的话,会一直进行匹配,直到不符合要求

    2.贪婪模式不是只去匹配最大的值而是尽可能的匹配所有符合要求的字符


  • 菜鸟佳佳
    2016-09-14 14:24:22

    是的,第一次贪婪模式,尽可能多的匹配,匹配了6个数字,所以只剩下78,第二次取消了贪婪模式,匹配了3个数字就停止了,但又是全文匹配,会接着继续匹配了3个数字,所以变成xx78

    慕用0089...

    厉害了 点赞点赞,全文匹配就是会无限次匹配知道没有为止啊

    2017-03-11 22:36:53

    共 1 条回复 >

JavaScript正则表达式

JavaScript正则表达式教程,理解之后,正则表达式比你想象的简单

96813 学习 · 119 问题

查看课程

相似问题