[英]What is the use of max m in the lazy quantifiers {n,m}??
在正則表達式中,我們有貪婪和懶惰的量詞。 貪心量詞{n,m}
匹配前面的原子/字符/組,最少出現 n 次,最多出現 m 次,包括端點。
如果我有一組字符串:
a
aa
aaa
aaaa
aaaaaaaaaa
使用a{2,4}
,它匹配:
那講得通。
但是,如果我有一個惰性量詞a{2,4}?
我得到:
這實際上是有道理的。 它找到最少的可能匹配項。
我想澄清的部分 - 以{n,m}?
最大值m
(在這種情況下, {2,4}?
)? 結果不是總是和{2,}?
?
是否存在傳遞最大值(如{2,4}?
)在惰性量詞中有用的情況?
免責聲明:我實際上是使用正則表達式在 Vim ( /a{-2,4}
) 中搜索,而不是使用任何腳本語言。 我想問題的原理還是一樣的。
當您需要考慮惰性量化表達式之后的內容時,這一點很重要。 惰性用於防止字符被串聯中的后續表達式消耗。 考慮字符串aaaaab
:
a{2,4}?b
不匹配,因為a
{2,4 a{2,4}
匹配的 a 太多。a{2,}?b
匹配,因為它可以匹配盡可能多a
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.