贪婪和懒惰的量词
贪婪
一个贪婪的量词总是试图通过回溯探索更短的在匹配前重复子图案多次越好。
通常,贪婪模式将匹配最长的字符串。
默认情况下,所有量词都是贪婪的。
怠惰
一个懒惰的 (也称为非贪婪或不愿 )量词总是试图重复子图案,少次地,通过扩张探索再在匹配前。
通常,惰性模式将匹配最短的可能字符串。
要使量词变得懒惰,只需将 ?
附加到现有量词,例如+?
,{0,5}?
。
贪婪和懒惰的概念只存在于回溯引擎中
贪婪/惰性量词的概念仅存在于回溯正则表达式引擎中。在非回溯正则表达式引擎或符合 POSIX 的正则表达式引擎中,量词只指定重复的上限和下限,而不指定如何找到匹配 - 这些引擎总是匹配最左边最长的字符串。