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

bea*_*asy 4 regex perl

例如,匹配不包含"foo"但包含"bar"的字符串的正则表达式.我没有使用两个表达式的奢侈.我需要在一个表达式中完成它.

例:

"这是foo baz酒吧" - 不应该匹配
"这是foo baz" - 不应该匹配
"这是baz酒吧" - 应该匹配

我在Perl,fwiw

Avi*_*Raj 10

在开始时使用负前瞻断言来检查字符串是否包含任何子foo字符串.

^(?!.*?foo).*bar.*
Run Code Online (Sandbox Code Playgroud)

要么

^(?!.*?\bfoo\b).*\bbar\b.*
Run Code Online (Sandbox Code Playgroud)

DEMO