簡體   English   中英

正則表達式使用前瞻的匹配未獲得任何匹配

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM