【问题标题】:java regular expression - match all strings except few stringsjava正则表达式 - 匹配除少数字符串之外的所有字符串
【发布时间】:2011-07-26 16:30:36
【问题描述】:

我在一个数组中有这些字符串,我想迭代这个数组并找到匹配的那些(每次匹配检查一行)。
问题是,我找不到正确的正则表达式。

Bird
Cat
Dog
Fish
CatDog
DogCat

目前,使用RegexBuddy(该死的好软件!!),我有这个正则表达式:

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

我想在其中添加“Dog”,因此在一次正则表达式匹配尝试中,我会得到一个匹配结果,你知道,就像 OR 运算符一样。
我想让它一次性检查“猫”或“狗”或“鱼”是否存在。

有什么想法吗?

【问题讨论】:

  • 这是您的实际问题还是它的简化版本?如果您正在寻找文字字符串而不是可以采用变量 froms 的模糊表示,您最好在集合上使用 .contains().equals() 等方法
  • @TheCapn - contains()equals() 可能会产生更具可读性的代码,但我希望正则表达式对此更有效。

标签: java regex


【解决方案1】:

尝试以下方法:

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

| 字符是正则表达式中的 OR 运算符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-22
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 2013-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多