0

我发现这个

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

(?|(Sat)ur|(Sun))天

这意味着 (Sat) 和 Sun 将以相同的顺序匹配

但是当我使用 regexbuddy 进行测试时,它会出现错误 abt 语法谢谢

4

1 回答 1

2

这应该适用于最新版本的 PCRE - 您是否确保将 regexbuddy 切换到 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
于 2012-04-23T16:27:02.367 回答