Java 返回与所选内容不匹配的结果的正则表达式

Java 返回与所选内容不匹配的结果的正则表达式,java,regex,perl,Java,Regex,Perl,我正在开发一个提供JavaAPI来扩展它的产品 API提供了一个函数 获取Perl正则表达式并 返回匹配文件的列表 我想筛选列表以删除以.xml、.xsl和.cfg结尾的所有文件;基本上与*(\.xml\.xsl\.cfg)相反 我一直在寻找,但还没有找到任何有用的东西 我尝试了*(?!\.cfg)和^((?!cfg)。*$和\(?!cfg$|?!xml$|?!xsl$) 我不知道我是否在正确的轨道上 注 我知道正则表达式系统是相似的,但我也不能让Java正则表达式工作。您需要这样的东西,只有在

我正在开发一个提供JavaAPI来扩展它的产品

API提供了一个函数 获取Perl正则表达式并 返回匹配文件的列表

我想筛选列表以删除以
.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谢谢,但它不起作用。它说表达式的格式不正确。