我正在查看一些正则表达式文档,并对某些内容感到困惑。(R)上下文中的条件据说(?(R)...|...)是:
Perl有点神秘:
(右)
检查表达式是否已在递归内部求值。完整语法:(?(R)then|else)
PCRE没有多大用处:
(?(R) 整体递归条件
和regular-expressions.info对此没有什么可说的。
这个条件是说子程序堆栈的深度是否超过 1 层还是有其他含义?
请参阅此解释:
如果没有名为“R”的子模式,则如果已对整个模式或任何子模式进行递归调用,则条件为 true
这意味着(?(R)条件检查整个模式是否至少递归一次,并且检查的结果是布尔值,如果发生递归则为True ,否则为False。
如果您需要检查一些示例,请参阅https://github.com/PhilipHazel/pcre2/blob/587b94277b50ababde2380b5877c93e36ca65db8/src/pcre2_jit_test.c。
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |