2011-07-26 41 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

相关问题