我处理的产品提供了一个Java API来扩展它。
API提供了一个功能 采用Perl正则表达式和 返回匹配文件列表。
我想过滤列表,删除所有以.xml
,.xsl
和.cfg
结尾的文件;基本上与.*(\.xml|\.xsl|\.cfg)
相反。
我一直在寻找,但我还没有得到任何工作。
我尝试了.*(?!\.cfg)
和^((?!cfg).)*$
以及\.(?!cfg$|?!xml$|?!xsl$)
。
我不知道我是否走在正确的轨道上。
我知道正则表达式系统是相似的,但我也无法使用Java正则表达式。
答案 0 :(得分:1)
您可以使用
^(?!.*\.(x[ms]l|cfg)$).+
请参阅regex demo
<强>详情:
^
- 字符串的开头(?!.*\.(x[ms]l|cfg)$)
- 如果除了换行符(.*
)之外的任何0 +字符后跟xml
,xsl
或{{ 1}}(cfg
)位于字符串末尾((x[ms]l|cfg)
)$
- 除了换行符之外的任何一个或多个字符。如果不需要整个字符串匹配,可能会被省略(虽然在某些工具中是必需的)。答案 1 :(得分:0)
你需要这样的东西,只有当字符串的末尾没有点和三个不需要的类型之一时才匹配
/(?<!\.(?:xml|xsl|cfg))\z/