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