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