正则表达式行不包含单词?

-1 regex

我希望有人可以帮我解决一个简单的正则表达式问题.我需要匹配包含一组单词的行,但不包含另一个单词.

例如,我正在搜索的文件包含以下内容:

鲍勃有一顶帽子.
比尔戴帽子.
弗雷德有一顶帽子.

我想要做的是匹配所有"有帽子"的行.除非该行还包含bob.

那有意义吗 ?

这必须是基本的正则表达式,而不是代码或任何东西,因为我将其输入到文本文件解析程序中.

Tim*_*ker 7

^(?=.*\bhas a hat\b)(?!.*\bBob\b).*
Run Code Online (Sandbox Code Playgroud)

如果它包含has a hat任何地方并且不包含Bob任何地方(以任何顺序),则匹配整行.

当然,它也不会像一条线那样匹配Fred has a hat. Bob doesn't.