用于排除具有特定模式的文件的正则表达式

Regex for excluding files with specific pattern

嘿,我有一个文件列表

现在我需要一个正则表达式来过滤名称中没有 -ext 的文件。

我已经试过了^.+(?!-ext)\.xml$ 但它不起作用。

我做错了什么?

不确定您的确切需求,但如果您想排除那些“-ext”正好位于 xml 扩展名之前的文件,我认为您可以使用:

^.+(?<!-ext)\.xml$

demo

  • ^ - 开始字符串锚点。
  • .+ - 除换行符外 1+ 个字符。
  • (?<!-ext) - 断言位置的否定回顾不以“-ext”开头。
  • \.xml - 匹配文字点和“xml”。
  • $ - 结束字符串锚点。

在用户'The fourth bird'的帮助下,我找到了正确的结构。

这是正确的结果

^(?!.*-ext).+\.xml$