Java正则表达式用于文件过滤

我想在Java中构建一个正则表达式,该正则表达式将在FilenameFilter中传递以过滤目录中的文件。

问题是我无法理解正则表达式“思维模型”的问题:)

这是我用来选择要排除的文件的正则表达式

(((ABC | XYZ))+ \ w * Test.xml

我想做的是选择所有以Test.xml结尾但不以ABC或XYZ开头的文件。

您能否添加任何可以帮助我应对正则表达式的资源。

谢谢

以下资源说明了有关regexp regular-expressions.info的许多内容

回答:

我想选择所有以结尾Test.xml 但不以ABC或开头的文件XYZ

您可以使用此正则表达式匹配所有文件:

^(?:(?:...)(?<!ABC|XYZ).*?)?Test\.xml$

或者您做相反的事情,并获取每个 匹配的文件:

^(?:ABC|XYZ).*?Test\.xml$

就个人而言,我发现第二种选择要简单得多。

ABC_foo_Test.xml //#2个匹配项

XYZ_foo_Test.xml //#2个匹配项

ABCTest.xml //#2个匹配项

XYZTest.xml //#2个匹配项

DEF_foo_Test.xml //#1个匹配项

DEFTest.xml //#1个匹配项

Test.xml //#1个匹配项

以上是 Java正则表达式用于文件过滤 的全部内容, 来源链接: utcz.com/qa/404893.html

回到顶部