正则表达式 - 匹配字符串不包含一个组,DOES包含另一个组

时间:2015-03-27 22:16:48

标签: regex perl

例如,一个正则表达式匹配一个不包含" foo"的字符串。但确实包含" bar"。我没有使用两个表达式的奢侈。我需要用一个表达式来做。

例如:

  

"这是foo baz bar" - 不应该匹配"这是foo baz" - 应该   不匹配
"这是baz bar" - 应匹配

我在Perl,fwiw

1 个答案:

答案 0 :(得分:10)

在开始时使用negative lookahead断言来检查字符串是否包含任何foo子字符串。

^(?!.*?foo).*bar.*

OR

^(?!.*?\bfoo\b).*\bbar\b.*

DEMO