2012-02-16 81 views
70

所以在java中的正則表達式,我想寫一個匹配的正則表達式,當且僅當該模式沒有被某些字符前綴匹配時。例如:正則表達式匹配的東西,如果它沒有前面有其他東西

String s = "foobar barbar beachbar crowbar bar "; 

我想匹配,如果巴不富之前。所以輸出將是:

barbar 
beachbar 
crowbar 
bar 

我知道這可能是一個非常簡單的問題。我正在嘗試學習正則表達式,但是現在我需要一些東西來工作。

+2

你的問題不太清楚。想要匹配iff你的整個字符串或每個單詞(用空格分隔)是否沒有被特定的charachters? – 2012-02-16 05:55:39

回答

125

你想用negative lookbehind這樣的:

\w*(?<!foo)bar 

(?<!x)手段「只有當它沒有‘X’這個點之前」。

有關更多信息,請參見Regular Expressions - Lookaround

編輯:添加了\w*以捕獲之前的字符(例如「海灘」)。

相關問題