下面是我使用正则表达式为FileFilter编写的一小段代码。它的目的是匹配上传的日志文件,并在文件名上增加索引。我希望不必担心文件名中的任何内容,只需将其作为字符串文字接受,而无需遍历对正则表达式模式匹配有意义的文件名转义字符。
mylog.log mylog-1.log mylog-2.log
public boolean accept(File file) {
Pattern pattern = Pattern.compile(filenameWithoutExtension + "-*[0-9]*." + extension);
Matcher matcher = pattern.matcher(file.getName());
return matcher.matches();
}我的问题是,如果文件名包含括号,这将不起作用,因为括号对模式匹配器来说意味着一些特殊的东西。
mylog(复制).log
我想用一个符号来围绕filenameWithoutExtension,它说,匹配这个字符串,忽略其中任何可能是模式匹配语法的内容。
发布于 2011-03-12 06:27:05
使用Pattern.quote。
https://stackoverflow.com/questions/5279038
复制相似问题