用于排除具有特定模式的文件的正则表达式
Regex for excluding files with specific pattern
嘿,我有一个文件列表
- B123245.xml
- B123245-ext.xml
- 1234W01.xml
- 1234W01-ext.xml
现在我需要一个正则表达式来过滤名称中没有 -ext 的文件。
我已经试过了^.+(?!-ext)\.xml$
但它不起作用。
我做错了什么?
不确定您的确切需求,但如果您想排除那些“-ext”正好位于 xml 扩展名之前的文件,我认为您可以使用:
^.+(?<!-ext)\.xml$
见demo
^
- 开始字符串锚点。
.+
- 除换行符外 1+ 个字符。
(?<!-ext)
- 断言位置的否定回顾不以“-ext”开头。
\.xml
- 匹配文字点和“xml”。
$
- 结束字符串锚点。
在用户'The fourth bird'的帮助下,我找到了正确的结构。
这是正确的结果
^(?!.*-ext).+\.xml$
嘿,我有一个文件列表
- B123245.xml
- B123245-ext.xml
- 1234W01.xml
- 1234W01-ext.xml
现在我需要一个正则表达式来过滤名称中没有 -ext 的文件。
我已经试过了^.+(?!-ext)\.xml$
但它不起作用。
我做错了什么?
不确定您的确切需求,但如果您想排除那些“-ext”正好位于 xml 扩展名之前的文件,我认为您可以使用:
^.+(?<!-ext)\.xml$
见demo
^
- 开始字符串锚点。.+
- 除换行符外 1+ 个字符。(?<!-ext)
- 断言位置的否定回顾不以“-ext”开头。\.xml
- 匹配文字点和“xml”。$
- 结束字符串锚点。
在用户'The fourth bird'的帮助下,我找到了正确的结构。
这是正确的结果
^(?!.*-ext).+\.xml$