正则表达式和不正确匹配

时间:2015-07-13 16:13:30

标签: regex

我希望能够在一组文件中搜索两个单词" country"和" vehicle" ...我想只看到包含两个单词的文档,但是一旦文档同时包含两个单词,我想要查看任何一个单词的所有出现。

我已经尝试了

(?=(country|vehicle)) 
(?= country )(?= vehicle)
( (country)* | (vehicle)*) | ( (country .* vehicle) )
(?=.*vehicle)(?=.*country)

我似乎无法正确地提出任何建议?

1 个答案:

答案 0 :(得分:1)

您需要使用单行选项和锚点来加速处理:

(?s)^(?=.*vehicle)(?=.*country)

如果您需要将单词作为整个单词进行匹配,请在它们周围使用\b字边界。

如果没有单行模式,可能无法访问您要检查的单词,因为它们可能位于第二行,第三行等,并且前瞻会失败。