Java 雅加达正则表达式1.5反向引用?

Java 雅加达正则表达式1.5反向引用?,java,backreference,regex,Java,Backreference,Regex,为什么会匹配: 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$");

为什么会匹配:

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));

后面的参考资料似乎不起作用。。。我遗漏了什么?

尝试使用以下目标字符串:

"099.9 099.9\r"
反向引用并不意味着再次执行该子表达式,它意味着匹配该子表达式匹配的任何对象的另一个实例

您还必须在back引用中使用两个反斜杠:

RE re = new RE("^([0-9]{3}.[0-9]) \\1\r$");