Regex 用于排除具有特定模式的文件的正则表达式
嘿,我有一份文件清单Regex 用于排除具有特定模式的文件的正则表达式,regex,regex-negation,Regex,Regex Negation,嘿,我有一份文件清单 B123245.xml B123245-ext.xml 1234W01.xml 1234W01-ext.xml 现在我需要一个正则表达式过滤器,只过滤名称中没有-ext的文件 我已经试过这个^.+(?!-ext)\.xml$ 但它不起作用 我做错了什么?不确定您的确切需求,但是如果您想排除那些在xml扩展名前面有“-ext”的文件,我认为您可以使用: ^.+(?<!-ext)\.xml$ ^.+(? 见 ^-启动字符串锚定 +-换行符以外的1个字符 (?-断言
- B123245.xml
- B123245-ext.xml
- 1234W01.xml
- 1234W01-ext.xml
^.+(?!-ext)\.xml$
但它不起作用
我做错了什么?不确定您的确切需求,但是如果您想排除那些在xml扩展名前面有“-ext”的文件,我认为您可以使用:
^.+(?<!-ext)\.xml$
^.+(?
见
^
-启动字符串锚定
+
-换行符以外的1个字符
(?-断言位置的反向查找前面没有“-ext”
\.xml
-匹配文字点和“xml”
$
-结束字符串锚定
在用户“第四只鸟”的帮助下,我找到了正确的结构
这是正确的结果
^(?!.*-ext).+\.xml$
这部分(?!-ext)
应该是^(?。.*-ext)
我试过^(?)-ext.+\.xml$
这仍然在匹配所有文件。我更新了注释,应该是^!(.*-ext)。+\.xml$
谢谢。这很有效!!!