我想了解
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:
In Perl, \1 through \9 are always interpreted as back references; a backslash-escaped number greater than 9 is treated as a back reference if at least that many subexpressions exist, otherwise it is interpreted, if possible, as an octal escape. In this class octal escapes must always begin with a zero. In this class, \1 through \9 are always interpreted as back references, and a larger number is accepted as a back reference if at least that many subexpressions exist at that point in the regular expression, otherwise the parser will drop digits until the number is smaller or equal to the existing number of groups or it is one digit.