这两个概念总在混淆,一个是量,一次匹配多少,一个是次,匹配成功后还继续匹配不。。。。。
通常所讲的贪婪模式,懒惰模式都是在讲“量”,即一次匹配多少个。。。
(1)量
贪婪模式:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配(默认情况下就是贪婪匹配)。
懒惰模式:如果需要懒惰匹配,也就是匹配尽可能少的字符,可转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。如a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到第三个字符)和ab(第四到第五个字符)
(2)次
注意,以上先匹配到了aab,还需要不需要继续匹配下去(后一次匹配到ab),这就是“次”的问题啦。。于是要看有没//g,有没这个g符号,有的话就是全局查找搜索,没有的话匹配一次成功就拉倒。