Java正则表达式,包含10个以上的分组。

4

我想了解Java如何解释代码

(one)(one)(one)(one)(one)(one)(one)(one)(one)(one)(two)\11

它会尝试匹配第一组和字面量1,还是尝试匹配第11组?我如何匹配第11组?


我试图重新表述和澄清您的问题,如果我有误解,请原谅。 - dimo414
1个回答

2

Java正则表达式应该是:

"(one)(one)(one)(one)(one)(one)(one)(one)(one)(one)(two)\\11"

它将匹配第11个捕获组。

根据Javadoc:

在Perl中,\1到\9始终被解释为向后引用;如果至少存在那么多的子表达式,则大于9的反斜杠转义数字将被视为向后引用,否则,如果可能,它将被解释为八进制转义。在此类中,八进制转义必须始终以零开头。在此类中,\1到\9始终被解释为向后引用,如果至少在正则表达式中的该点存在那么多的子表达式,则接受较大的数字作为向后引用,否则解析器将删除数字,直到数字小于或等于现有组数或只有一个数字。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接