public class RegexTest {
public static void main(String[] args) {
String s = "\t";
System.out.println(s.matches("\\t"));
System.out.println(s.matches("\t"));
String str = "\\";
System.out.println(str.matches("\\\\"));
System.out.println(str.matches("\\"));
}
}
控制台打印出:
true
true
true
Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^
at java.util.regex.Pattern.error(Pattern.java:1955)
at java.util.regex.Pattern.compile(Pattern.java:1702)
at java.util.regex.Pattern.(Pattern.java:1351)
at java.util.regex.Pattern.compile(Pattern.java:1028)
at java.util.regex.Pattern.matches(Pattern.java:1133)
at java.lang.String.matches(String.java:2121)
at primitivetest.RegexTest.main(RegexTest.java:12)
为什么会出现运行时异常?为什么第二行代码可以打印出true,第四行代码却不行?
第1、2行跟第3、4行有什么不同啊?