我正在用java写一个文件重命名程序。问题在于给出输入模式。java中的模式识别器
当输入是复杂的像(] [)在这种情况下,我被java.util.regex.Pattern中类得到错误..
编写这些代码的主要问题是输入模式和替换模式是用户输入。在处理过程中如何处理这些字符?
我正在用java写一个文件重命名程序。问题在于给出输入模式。java中的模式识别器
当输入是复杂的像(] [)在这种情况下,我被java.util.regex.Pattern中类得到错误..
编写这些代码的主要问题是输入模式和替换模式是用户输入。在处理过程中如何处理这些字符?
这是一个如何逃避特殊RegExp字符的例子s的Java源代码。我相信如果用户输入模式,您将不得不手动转义特殊字符。
package edu.mew.test.regexp;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegExpPatternTester {
public static void main(String[] args) {
String s1 = "filename()[].txt";
Pattern p = Pattern.compile(".*\\(\\)\\[\\].*");
Matcher m1 = p.matcher(s1);
System.out.println(m1.matches());
String s2 = "filename.txt";
Matcher m2 = p.matcher(s2);
System.out.println(m2.matches());
}
}
它们保留在正则表达式 需要用两个反斜杠
逃脱他们的字符//]
OOPS太多微软影响我的意思
反斜杠\\]
http://download.oracle.com/javase/1.4.2/docs/api/java/util/regex/Pattern.html
你是单元测试吗? – stevebot 2010-12-04 19:29:24
是的,那是单元测试的一部分... – 2010-12-04 19:44:42