子模式中的相同反向引用,PHP PCRE Regexp


same backreference in subpatterns, php pcre regexp

我在

http://www.php.net/manual/en/regexp.reference.subpatterns.php

(?|(周六)您的|(周日))日

此平均值 (星期六) 和 Sun 将按相同的顺序匹配

但是当我使用正则表达式进行测试时,它会发生错误阿布特语法谢谢

这应该适用于最新版本的 PCRE - 您是否确保将正则表达式好友切换到 PCRE 模式?

您还需要一个更新的版本。我的 PHP 5.2.6 安装太旧了 (PCRE 6.6 2006-02-06),而 PHP 5.2.17 (8.02 2010-03-19) 很好。

这个测试PHP程序:

$a = "it is Sunday tomorrow";
preg_match('/(?|(Sat)ur|(Sun))day/', $a, $m);
print_r($m);

输出此内容:

Array
(
    [0] => Sunday
    [1] => Sun
)

如果您的 PCRE 版本太旧,您将收到此错误:

 Compilation failed: unrecognized character after (? at offset 2