正则表达式:允许包含"foo"的字符串,但如果同一字符串也包含"bar"则不允许



我的输入是一个文件名,一些例子:

/some/file/path/thefooisgood.txt
/some/file/path/thisfooisalsogood.txt
/some/file/path/thisfooalsohasbar.txt

我想查找/允许包含子字符串的所有文件名/路径foo只要字符串中没有子字符串bar

子字符串bar可能出现在文件路径中的任何位置,不一定总是在foo之后,有时可能位于路径名中,而不仅仅是文件名中。foo也是如此。我似乎做不好。

您可以使用基于前瞻的负正则表达式,如下所示:

^(?!.*bar).*foo

正则表达式演示

详:

  • (?!.*bar):断言我们在输入中没有bar
  • .*foo:在输入中的任何位置匹配foo

相关内容

最新更新