我想了解Java如何解释代码
(one)(one)(one)(one)(one)(one)(one)(one)(one)(one)(two)\11
它会尝试匹配第一组和字面量1
,还是尝试匹配第11组?我如何匹配第11组?
Java正则表达式应该是:
"(one)(one)(one)(one)(one)(one)(one)(one)(one)(one)(two)\\11"
它将匹配第11个捕获组。
根据Javadoc:
在Perl中,\1到\9始终被解释为向后引用;如果至少存在那么多的子表达式,则大于9的反斜杠转义数字将被视为向后引用,否则,如果可能,它将被解释为八进制转义。在此类中,八进制转义必须始终以零开头。在此类中,\1到\9始终被解释为向后引用,如果至少在正则表达式中的该点存在那么多的子表达式,则接受较大的数字作为向后引用,否则解析器将删除数字,直到数字小于或等于现有组数或只有一个数字。