我创建了一个简单的演示来查看反向引用是如何工作的。它是
Pattern pattern = Pattern.compile("([0-9]+)([,=]+)\\2\\1");
Matcher matcher = pattern.matcher("2==2 5,,,,5");
while (matcher.find()) {
String group = matcher.group();
System.out.println("group=" + group);
}
输出结果为:
group=2==2
group=5,,,,5
有人能解释为什么5,,,,5
与反向引用匹配\\ 2?
答案 0 :(得分:1)
Matcher#group()
州
返回上一个匹配项匹配的输入子序列。
在第二个循环中,它返回字符串中的第二个匹配项。那是
5,,,,5
([0-9]+)
匹配5
,([,=]+)
匹配,,
,\\2
匹配,,
和\\1
匹配5
。