路径验证的正则表达式?

时间:2015-06-04 14:13:06

标签: regex

我有一条路径,需要编写一个正则表达式来过滤使用Common-io库的路径。

路径不应包含:

  • req/com/res
  • res/com/req
  • req/al/res
  • res/al/req
  • _svn

和路径应以.xml结尾。

 FileUtils.listFiles(aFile, new RegexFileFilter("^(.*?)"), TrueFileFilter.INSTANCE)

如果我这样做,则会返回所有xmls。

我对正则表达式一无所知;有人可以问一下如何做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用以下正则表达式:

^(?i)(?!.*(?:re[qs]/(?:com|al)/re[sq]|_svn)).*\\.xml$

请参阅demo

(?i)模式使其不区分大小写。如果要使搜索区分大小写,请删除。 (?!.*(?:re[qs]/(?:com|al)/re[sq]|_svn))模式确保我们不允许路径中的任何禁用字符串。

如果您只想说明整个字词,请添加\b

^(?i)(?!.*\\b(?:re[qs]/(?:com|al)/re[sq]|_svn)\\b).*\\.xml$

请参阅another demo

注意在Java风格的正则表达式中,我们不需要转义/,我们必须双重转义特殊字符。