为什么匹配:
String str = "099.9 102.2" + (char) 0x0D;
RE re = new RE("^([0-9]{3}.[0-9]) ([0-9]{3}.[0-9])\r$");
System.out.println(re.match(str));
但这不是:
String str = "099.9 102.2" + (char) 0x0D;
RE re = new RE("^([0-9]{3}.[0-9]) \1\r$");
System.out.println(re.match(str));
后面的引用似乎没有用......我缺少什么?
答案 0 :(得分:2)
尝试使用此目标字符串:
"099.9 099.9\r"
反向引用并不意味着再次执行该子表达式,这意味着匹配子表达式匹配的另一个实例。
您还必须在后引用中使用两个反斜杠:
RE re = new RE("^([0-9]{3}.[0-9]) \\1\r$");