用于查找特定文件的正则表达式

时间:2017-12-05 10:09:00

标签: java regex

我希望将文件名匹配为"abc (1).xyz""abc (2).xyz""abc (3).xyz",依此类推,其中abcxyz(扩展名)已修复。此外,空格+ (number)部分是可选的,即abc.xyz也是有效的。

我已尝试过以下代码,但它没有返回成功响应:

String regex = "abc\\s([0-9])\\.xyz";
        Pattern mather = Pattern.compile(regex);

        if (mather.matcher(fileName).matches()) {
            return true;
        } else {
            return false;
        }

请为此建议任何解决方案。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用

String regex = "abc(?:\\s+\\([0-9]+\\))?\\.xyz";

它将匹配:

  • abc - abc
  • (?:\\s+\\([0-9]+\\))? - 可选序列:
    • \\s+ - 1+空白字符
    • \\( - (
    • [0-9]+ - 1+位数
    • \\) - )
  • \\.xyz - .xyz子字符串。

由于您使用的是Matcher#matches()方法,因此需要进行整个字符串匹配(就好像整个模式附加了^$个锚点"^abc(?:\\s+\\([0-9]+\\))?\\.xyz$")。< / p>