【发布时间】:2011-03-11 22:25:57
【问题描述】:
这是我使用正则表达式为 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();
}
我的问题是,如果文件名包含括号,这将不起作用,因为括号对模式匹配器意味着特殊的东西。
我的日志(复制).log
我想在 filenameWithoutExtension 周围加上一个符号,表示匹配此字符串,忽略其中可能是模式匹配语法的任何内容。
【问题讨论】: