Regex 正则表达式和不正确匹配

Regex 正则表达式和不正确匹配,regex,Regex,我希望能够在一组文档中搜索两个词“国家”和“车辆”。。。我只想看到同时包含两个单词的文档,但一旦文档同时包含两个单词,我想查看其中任何一个单词的所有出现情况 我试过了 (?=(country|vehicle)) (?= country )(?= vehicle) ( (country)* | (vehicle)*) | ( (country .* vehicle) ) (?=.*vehicle)(?=.*country) 我似乎无法正确理解,有什么建议吗?您需要使用单线选项和锚定来加快处理速

我希望能够在一组文档中搜索两个词“国家”和“车辆”。。。我只想看到同时包含两个单词的文档,但一旦文档同时包含两个单词,我想查看其中任何一个单词的所有出现情况

我试过了

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

我似乎无法正确理解,有什么建议吗?

您需要使用单线选项和锚定来加快处理速度:

(?s)^(?=.*vehicle)(?=.*country)
如果需要将单词作为整体进行匹配,请在单词周围使用
\b
单词边界


如果没有单线模式,您正在检查的单词可能无法到达,因为它们可能位于第二行、第三行等,并且lookaheads将失败。

(?=.*车辆)(?=.*国家)
应该可以工作,有什么问题吗?我想我只是想确认一下,因为我使用的是代理Ransack/FileLocatorPro,结果中没有突出显示任何点击。如果我键入“不太复杂”的内容,所有匹配项都是蓝色的。当我看到结果时,我不会感到沮丧