正则表达式嵌套反向引用

时间:2016-08-11 16:01:30

标签: regex

是否可以获得对以下正则表达式的嵌套后向引用:

<field(.*)name="(.*)EndTime"(.*)\n((.*)\n)*?<property name="fieldClass" value="java.lang.String"/>\n</field>

"((.*)\n)*?"

1 个答案:

答案 0 :(得分:1)

是的,这很有可能。请务必注意您正在使用的编号组。捕获组(以及后向引用)根据开头括号首先进行编号 - 因此,在这种情况下,外部括号将产生\1,而内部括号将产生\2

例如,模式((.+)ab)\1\2将匹配字符串1234ab1234ab1234。第一个捕获组将匹配4个数字加上ab,而第二个(内部)捕获组将仅匹配数字。然后我们重复每一个,产生完整的匹配。