我希望有人可以帮我解决一个简单的正则表达式问题。 我需要匹配包含一组单词的行,但不包含另一个单词。
e.g。 我正在搜索的文件包含以下内容:
鲍勃有一顶帽子 比尔戴帽子 弗雷德有一顶帽子。
我想要做的是匹配所有“有帽子”的行。除非该行还包含bob。
这有意义吗?
这必须是基本的正则表达式,而不是代码或任何东西,因为我将其输入到文本文件解析程序中。
答案 0 :(得分:6)
^(?=.*\bhas a hat\b)(?!.*\bBob\b).*
匹配整行,如果它在任何地方包含has a hat
并且在任何地方都不包含Bob
(按任何顺序)。
当然,它也不会匹配像Fred has a hat. Bob doesn't
这样的行。