2011-07-26 14 views
3

私はこれらの文字列を配列に持っており、この配列を反復して一致するものを探したい(一致チェックごとに1行)。
問題は、正しい正規表現が見つかりません。java正規表現 - 少数の文字列を除くすべての文字列に一致する

現在
Bird 
Cat 
Dog 
Fish 
CatDog 
DogCat 

RegexBuddy(いまいましい素敵なソフトウェア!!)で、私はこの正規表現を持っている:

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

私は1つの正規表現のマッチはI'LLを試しにおけるように、そこに "犬" を追加したいですOR演算子のように、一致結果を得ることができます。
"Cat"や "Dog"、 "Fish"があるかどうかを確認したい

+0

これは実際の問題ですか、それとも簡略化されたバージョンですか?リテラル文字列を探していて、変数fromを取りうる表現があいまいでない場合は、コレクションの '.contains()'や '.equals()'などのメソッドを使う方が良いです。 – Grambot

+0

@ TheCapn - 'contains()'と 'equals()'はおそらくより読みやすいコードになりますが、これに対して正規表現がより効率的になることが期待されます。 –

答えて

7

は、以下のことを試してみてください。

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

|文字は正規表現でのOR演算子です。

+0

素晴らしい作品です!ありがとう!! – Poni

関連する問題