Regular-Expression

高級正則表達式:無法確定可以使用 (?R) 遞歸正則表達式的情況

  • June 30, 2020

這裡有人可以解釋遞歸 Perl/PCRE 正則表達式(?R)有用的情況嗎?

我讀

但仍然找不到案例。

這是用於匹配嵌套結構的工具,例如嵌套括號。

數學定義的正則表達式不能匹配這個。

\(  ( [^()]*+ | (?R) )*  \)

線上查看(應忽略空格)。

請閱讀:

典型範例是匹配一個算術表達式,其中包含括號中的數字、運算符和子表達式:

([0-9]+|\((?R)\))([-+*\/]([0-9]+|\((?R)\)))*
^^^^^^ ^^^^^^^^  ^^^^^^^ ^^^^^^ ^^^^^^^^
number (subexp)   oper   number (subexp)
\______  _______/        \______  _______/
      \/                       \/
 One of those             One of those
                 \__________  ____________/
                            \/
                    Zero or more of those

也就是匹配

  • 括號中的數字或子表達式,後跟
  • 零次或多次運算符和括號中的數字或子表達式。

引用自:https://unix.stackexchange.com/questions/595772