我最近在 Regex 上浏览了很多内容,并且看到了很多涉及匹配一个单词的答案,而第二个单词则不存在。我看过很多正则表达式示例,我可以在其中使用正则表达式搜索给定的单词(或任何更复杂的正则表达式)并找到缺少单词的位置。
似乎在逐行的基础上工作得很好,但是在包括多行模式之后,它似乎仍然不能正确匹配。
示例:匹配包含该单词的整个文件字符串foo
,但bar
文件中不存在该单词。到目前为止,我所拥有的(?m)^(?=.*?(foo))((?!bar).)*$
是基于示例链接的。我一直在使用 Ruby 正则表达式测试器进行测试,但我认为这是一个开放式正则表达式问题/问题。它似乎匹配较小的部分,我想让它在整个字符串上匹配/不匹配作为一个大块。
在上面提供的示例中,似乎是逐行找到匹配项。需要对正则表达式进行哪些更改才能应用于整个字符串?
编辑:我知道还有其他更有效的方法可以解决这个问题,而不涉及使用正则表达式。我不是在寻找使用其他方式解决问题的方法,而是从理论上的正则表达式的角度提出问题。它有一个多行模式(看起来“工作”),它有负/正搜索,可以逐行组合,为什么组合这两个原则不会产生预期的结果?