我发现这个
http://www.php.net/manual/en/regexp.reference.subpatterns.php
(?|(Sat)ur|(Sun))天
这意味着 (Sat) 和 Sun 将以相同的顺序匹配
但是当我使用 regexbuddy 进行测试时,它会出现错误 abt 语法谢谢
我发现这个
http://www.php.net/manual/en/regexp.reference.subpatterns.php
(?|(Sat)ur|(Sun))天
这意味着 (Sat) 和 Sun 将以相同的顺序匹配
但是当我使用 regexbuddy 进行测试时,它会出现错误 abt 语法谢谢
这应该适用于最新版本的 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