2011-07-26 227 views
3

我有這些字符串在數組中,我想迭代這個數組並找到匹配的人(每個匹配檢查一行)。
事情是,我找不到正確的正則表達式。java的正則表達式 - 匹配除了幾個字符串以外的所有字符串

Bird 
Cat 
Dog 
Fish 
CatDog 
DogCat 

目前,隨着RegexBuddy(該死的好看軟件!),我有這樣的正則表達式:

(?!Cat\b)\b\w+ 

我想「狗」添加到它因此在一個正則表達式匹配的嘗試我會得到一個匹配結果,你知道,像一個OR運算符。
我想要檢查一下「貓」或「狗」或「魚」是否在那裏。

有什麼想法?

+0

這是您的實際問題或其簡化版嗎?如果你正在尋找字面字符串,而不是可以接受變量的模糊表示,你最好使用類似'.contains()','.equals()'等的方法在集合 – Grambot

+0

@ TheCapn - 'contains()'和'equals()'可能會產生更多可讀代碼,但我希望正則表達式對此更有效。 –

回答

7

嘗試以下操作:

\b(?!(?:Bird|Cat|Dog|Fish|CatDog|DogCat)\b)\w+ 

|字符是在正則表達式OR運算符。

+0

太棒了!謝謝!! – Poni

相關問題