java中的模式识别器
我正在用java编写一个文件重命名程序。问题在于何时给出输入模式 当输入像(][)那样复杂时,我通过java.util.regex.Pattern类得到错误java中的模式识别器,java,pattern-matching,Java,Pattern Matching,我正在用java编写一个文件重命名程序。问题在于何时给出输入模式 当输入像(][)那样复杂时,我通过java.util.regex.Pattern类得到错误 编写此代码的主要问题是输入模式和替换模式是用户输入。在处理过程中如何处理此类字符???您可以使用转义正则表达式中的特殊字符。您可以使用转义正则表达式中的特殊字符。它们是regex中的保留字符 你需要用两个反斜杠来摆脱他们 //] 哎呀,我是说微软的影响力太大了 反斜杠\\] 它们是正则表达式中的保留字符 你需要用两个反斜杠来摆脱他们 //]
编写此代码的主要问题是输入模式和替换模式是用户输入。在处理过程中如何处理此类字符???您可以使用转义正则表达式中的特殊字符。您可以使用转义正则表达式中的特殊字符。它们是regex中的保留字符 你需要用两个反斜杠来摆脱他们 //] 哎呀,我是说微软的影响力太大了 反斜杠\\]
它们是正则表达式中的保留字符 你需要用两个反斜杠来摆脱他们 //] 哎呀,我是说微软的影响力太大了 反斜杠\\]
这是一个如何在Java源代码中转义特殊RegExp字符的示例。我相信,如果用户正在输入模式,则必须手动转义特殊字符
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());
}
}
这是一个如何在Java源代码中转义特殊RegExp字符的示例。我相信,如果用户正在输入模式,则必须手动转义特殊字符
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());
}
}
嗯,那很好。但是在搜索时,它无法从文件名中识别模式..嗯,这很好。但是在搜索时,它不能识别文件名中的模式。反斜杠是“\
,而不是“
/”。你想要的是“\\””
,而不是“\\\\””
。反斜杠是“\,而不是“
”。你想要的是“\\”
,而不是“\\”。
。是的,这是单元测试的一部分……是的,这是单元测试的一部分。。。