我试图在网上找到答案,但我无法。此页面上的第三部分是否适用于 PHP / PCRE?
https://www.regular-expressions.info/recursebackref.html
“对其他递归级别部分的反向引用”。我只对 PHP 感兴趣,所以如果这不适用于 PHP 语言(或者可能是 JavaScript),这就是我需要知道的全部内容。
谢谢。
我试图在网上找到答案,但我无法。此页面上的第三部分是否适用于 PHP / PCRE?
https://www.regular-expressions.info/recursebackref.html
“对其他递归级别部分的反向引用”。我只对 PHP 感兴趣,所以如果这不适用于 PHP 语言(或者可能是 JavaScript),这就是我需要知道的全部内容。
谢谢。
PCRE 不支持具有递归级别的反向引用,该信息与 Ruby Onigmo 正则表达式引擎有关。
请参阅Onigmo 参考:
\k<n+level> \k'n+level'
\k<n-level> \k'n-level'
\k<-n+level> \k'-n+level'
\k<-n-level> \k'-n-level'
\k<name+level> \k'name+level'
\k<name-level> \k'name-level'
Destine a group on the recursion level relative to the referring position.
ex 1.
/\A(?<a>|.|(?:(?<b>.)\g<a>\k<b>))\z/.match("reee")
/\A(?<a>|.|(?:(?<b>.)\g<a>\k<b+0>))\z/.match("reer")
\k<b+0> refers to the (?<b>.) on the same recursion level with it.
请参阅Rubular 演示。
至于PCRE,唯一允许的语法反向引用是
\n reference by number (can be ambiguous)
\gn reference by number
\g{n} reference by number
\g{-n} relative reference by number
\k<name> reference by name (Perl)
\k'name' reference by name (Perl)
\g{name} reference by name (Perl)
\k{name} reference by name (.NET)
(?P=name) reference by name (Python)