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

时间:2013-04-09 05:28:59

标签: regex

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

e.g。 我正在搜索的文件包含以下内容:

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

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

这有意义吗?

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

1 个答案:

答案 0 :(得分:6)

^(?=.*\bhas a hat\b)(?!.*\bBob\b).*

匹配整行,如果它在任何地方包含has a hat并且在任何地方都不包含Bob(按任何顺序)。

当然,它也不会匹配像Fred has a hat. Bob doesn't这样的行。