DEELX 正则表达式扩展语法:递归表达式

转载:http://www.regexlab.com/zh/deelx/syntax/ext_recs.htm

递归表达式 (?R)
对另一部分子表达式的引用,而不是对其匹配结果的引用。当被引用的表达式包含自身,则形成递归引用。

说明
相对于 “反向引用” 来说,反向引用是在匹配过程中,对匹配到的字符串内容进行引用,而 “递归匹配” 是对表达式进行引用。举例说明:

表达式 等效的表达式1 等效的表达式2 可以匹配
(\w)(?1) (\w)(\w) ab
(?1)(\w(?2))(\d) (?1)(\w(\d))(\d) (\w(\d))(\w(\d))(\d) a1b23

如果被引用的表达式又包含自身,则形成了递归引用。举例说明:

表达式 等效1 等效2 可以匹配
(\w(?1)?) (\w(\w(?1)?)?) (\w+) ghjk5……
(([^()] (?R))*) (([^()] (([^()]

DEELX 支持的递归表达式格式有:

格式 说明
(?R) 对整个表达式的递归引用。
(?R1),(?R2) 对指定分组的递归引用。
(?1),(?2) 对指定分组的递归引用。
(?R) 对指定命名分组的递归引用。
(?R’named’) 对指定命名分组的递归引用。

你可能感兴趣的:(正则表达式,递归)