鉴于包含文件名的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)有没有办法更容易地做到这一点?我觉得必须有一种简单的方式让我完全失踪......
感谢您的帮助!