用于匹配用户输入的字符串文字的正则表达式问题

时间:2011-03-11 22:25:58

标签: java regex

这是我使用正则表达式为FileFilter编写的一些代码。它的目的是匹配上传的日志文件并增加文件名的索引。我不想担心文件名中的任何内容,只是接受它作为字符串文字,而不会旋转对正则表达式模式匹配有意义的文件名转义字符。

mylog.log mylog-1.登录 mylog-2.登录

        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,匹配此字符串,忽略其中可能是模式匹配语法的任何内容。

1 个答案:

答案 0 :(得分:2)

使用Pattern.quote