Pattern p = Pattern.compile("(\\d(\\d))\\2");
Matcher matcher = p.matcher("322");
System.out.println(matcher.matches());
其中\2并不是匹配数字2而是代表引用前面的第2组匹配的值,所以匹配的结果会是True。做个对比
Pattern p = Pattern.compile("(\\d(\\d))\\2");
Matcher matcher = p.matcher("323");
System.out.println(matcher.matches());
这时,产生的值就是False。