匹配具有特定扩展名的所有文件名,但特定文件名正则表达式除外

时间:2016-04-01 01:35:21

标签: java regex

从以下列表中

"foo.exe"
"foo.dmg"
"baz.exe"
"this-is-another-file-name.exe"
...

除了特定字符串".exe"

之外,java正则表达式将匹配以"baz.exe"结尾的每个字符串

谢谢!

编辑:我已经尝试了(?=\.exe$)(?!baz\.exe)

2 个答案:

答案 0 :(得分:3)

如果匹配,look behind丢弃匹配baz。 我假设您正逐一检查filenames。因此使用了锚^$

正则表达式: ^(?!baz).*\.exe$

<强> Regex101 Demo

答案 1 :(得分:1)

正如@Wajahat所说,这个问题可以直接从Regex: match everything but回答(也是第一个google回答)。

{{1}}

  • foo.exe:匹配
  • baz.exe:不匹配
  • whaterver.exe:匹配