Java正则表达式匹配文件名(#)。extension

时间:2017-11-22 12:52:17

标签: java regex filenames

鉴于包含文件名的List,我希望能够获得文件的潜在重复数量。副本被定义为名称相等或匹配命名约定的文件 basename(number).extension

第一步是能够断言文件名是否与某些模式匹配。我以为我可以用正则表达式做到这一点。这是:

    String basename = "file1";
    String extension = "txt";
    String patternExpression = "^%s(\\(\\d+?\\))??\\.%s$";
    Pattern patter = Pattern.compile(String.format(patternExpression, basename, extension));
    assert pattern.matcher("file1.txt").find() : "file1.txt should match";
    assert pattern.matcher("file1(2).txt").find() : "file1(1).txt should match";

在此代码示例中,断言将通过。当basename包含由Regex编译器解释的某些字符时,会出现此方法的问题。我想告诉正则表达式编译器完全匹配基本名称而不解释它。

1)这可能吗? 2)有没有办法更容易地做到这一点?我觉得必须有一种简单的方式让我完全失踪......

感谢您的帮助!

0 个答案:

没有答案