[英]Regex.Matches using lookahead not getting any matches
我有一個正則表達式
Regex.Matches(a, @"((?=.)\1+)")
上面的正則表達式應該獲得匹配而不捕獲模式強制結果
但是它沒有獲取任何匹配
另一方面,當我不提前使用
像這樣
Regex.Matches(a, @"(.)\1+")
它帶來比賽和工作正常
我想知道為什么會這樣,為什么提前不獲取任何匹配項。
我的繩子是
"zaaaaaaashjasjaaasjabbbajsljlsccccasjahsddddd";
上面的第二行帶來
[aaaaaaa],[aaa],...
謝謝
前瞻既不消耗字符也不捕獲字符。 可以這樣說,第一個正則表達式中的后向引用\\1
捕獲任何內容,並且使總匹配失敗(這不一定在所有正則表達式中都適用)。
當前瞻位於另一個捕獲組中時,將應用相同的語句。 前瞻性不消耗任何東西,因此捕獲組不包含任何東西。
要捕獲前瞻(通常是環顧四周)中的所有內容,請使用如下捕獲組:
(?=(.))\1\1+
這就是您要使用第一個正則表達式說的內容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.