概述
当正则表达式中包含重复元字符比如“*”、“+”,都会匹配尽可能多的字符,如“a.*b”,最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。
有时候我们希望尽可能少的匹配满足条件的字符,我们称为 懒惰匹配。只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。var patt=/a.*?b/g
var str="aabab"
console.log(str.match(patt)) //匹配到 aab 和 ab
*?:重复任意次,但是尽可能少的重复
+?:重复至少1次,,但是尽可能少的重复
??:重复0或者1次,,但是尽可能少的重复
{n,m}?:重复n-m次,但是尽可能少的重复var patt=/a.+?b/g
var str="aabab"
console.log(str.match(patt)) //匹配到aab
var patt=/a.??b/g
var str="aabbbab"
console.log(str.match(patt)) //匹配到aab 和 ab
最后
以上就是唠叨时光为你收集整理的php正则表达式懒惰匹配,正则表达式-贪婪与懒惰的全部内容,希望文章能够帮你解决php正则表达式懒惰匹配,正则表达式-贪婪与懒惰所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复