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

时间:2018-08-09 19:11:24

标签: python regex

我的输入是文件名,例如:

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

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

子字符串bar可能出现在文件路径中的任何位置,不一定总是在foo之后,并且有时可能位于路径名中,而不仅仅是文件名。 foo也是如此。我似乎无法正确解决问题。

1 个答案:

答案 0 :(得分:3)

您可以这样使用基于负前瞻的正则表达式:

^(?!.*bar).*foo

RegEx Demo

详细信息:

  • (?!.*bar):声明输入中没有bar
  • .*foo:在输入中的任意位置匹配foo