Java 返回与所选内容不匹配的结果的正则表达式
我正在开发一个提供JavaAPI来扩展它的产品 API提供了一个函数 获取Perl正则表达式并 返回匹配文件的列表 我想筛选列表以删除以Java 返回与所选内容不匹配的结果的正则表达式,java,regex,perl,Java,Regex,Perl,我正在开发一个提供JavaAPI来扩展它的产品 API提供了一个函数 获取Perl正则表达式并 返回匹配文件的列表 我想筛选列表以删除以.xml、.xsl和.cfg结尾的所有文件;基本上与*(\.xml\.xsl\.cfg)相反 我一直在寻找,但还没有找到任何有用的东西 我尝试了*(?!\.cfg)和^((?!cfg)。*$和\(?!cfg$|?!xml$|?!xsl$) 我不知道我是否在正确的轨道上 注 我知道正则表达式系统是相似的,但我也不能让Java正则表达式工作。您需要这样的东西,只有在
.xml
、.xsl
和.cfg
结尾的所有文件;基本上与*(\.xml\.xsl\.cfg)
相反
我一直在寻找,但还没有找到任何有用的东西
我尝试了*(?!\.cfg)
和^((?!cfg)。*$
和\(?!cfg$|?!xml$|?!xsl$)
我不知道我是否在正确的轨道上
注
我知道正则表达式系统是相似的,但我也不能让Java正则表达式工作。您需要这样的东西,只有在字符串末尾没有点和三种不需要的类型之一时才匹配
/(?<!\.(?:xml|xsl|cfg))\z/
/(?您可以使用
^(?!.*\.(x[ms]l|cfg)$).+
见
详细信息:
^
-字符串的开头
(?!.*\(x[ms]l | cfg)$)
-如果字符串($
)末尾有xml
、xsl
或cfg
((x[ms]l | cfg)
)以外的任何0+字符,则会导致匹配失败
+
-除换行符以外的任何1个或多个字符。如果不需要整个字符串匹配,则可能会忽略该字符(但在某些工具中需要)
试试$(?@WiktorStribiżew谢谢。我会试试。我必须设置一个地方进行测试,而不必一直重新编译代码。如果成功了,我明天会告诉你。你为什么不能匹配\。(x[ms]l|cfg)$
并反转正则表达式传递的结果?@Unihedron API返回一个迭代器,我可以使用它来获取列表。如果匹配,我的列表中就不会有我想要的文件。只有我不想要的文件。@WiktorStribiżew谢谢,但它不起作用。它说表达式的格式不正确。