regex — обратные ссылки на другие уровни рекурсии в PHP / PCRE

Я пытался найти ответ в сети, но не смог. Третий раздел на этой странице относится к PHP / PCRE или нет?

https://www.regular-expressions.info/recursebackref.html

«Обратные ссылки на другие части уровня рекурсии». Меня интересует только PHP, поэтому, если это не относится к языку PHP (или, возможно, к JavaScript), это все, что мне нужно знать.

Благодарю.

2

Решение

Обратные ссылки с уровнем рекурсии не поддерживаются 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 demo.

Что касается 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)
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]