給定一個字符串"A B C a b B"
我想匹配重複的單詞(無論大小寫)。預期結果將匹配「A」和「B」(A的最後出現和B)或「A」和「B」(第一事件)正則表達式積極lookbehind +負向lookahead
編輯:我只想匹配第一個或最後一個發生這個詞
我知道這個問題可以通過拆分字符串並計算每個令牌(降低該情況)來更好地回答。
但是,我想嘗試制定一個正則表達式來幫助我找到這些詞,只是爲了練習。
我的第一次嘗試是:(?=\b(\w+)\b.*\b(\1)\b)(\1)
但是它匹配第一個A,第一個B和第二個B(A B b)。
我想以某種方式使用正向後看負先行,以獲取重複單詞的最後一個實例:(?<=.*(?!.*(\w+).*)\1.*)\b\1\b
(在我的頭上是翻譯過來就是「那之前已經匹配,並榮獲」一個字再次匹配「)
那麼,它不適用於我不幸的。
是否可以使用積極的後視和負面預測這種方式?
我的正則表達式可以修復嗎?
我試着在C#中解決它。
這不是功課
我想匹配重複單詞只有一次。我編輯了這個問題。抱歉。 –
@nocgod沒問題,我擴大了答案 –
@Lucas_Trezsniewski太棒了!我一直在移動這些部件,不知道爲什麼我沒有嘗試簡單的解決方案! –