我有两个案例要匹配:
# ... ([0-9]+,[0-9]+) € ... #
或
# ... (--) ... #
现在,
# ... (?:(--)|([0-9]+,[0-9]+) €) ... #
不起作用,它说
Unknown modifier '(' ...
我在PHP 5.3上使用preg_match_all()
以上不是完整的表达,只是摘录!
答案 0 :(得分:0)
您需要将简单正则表达式放在分隔符中以获取regular expression in PCRE format,例如使用/
作为分隔符:
/(?:(--)|([0-9]+,[0-9]+) €)/
答案 1 :(得分:0)
你有分隔符吗?
preg_match_all('#(?:(--)|([0-9]+,[0-9]+) €)#', ...)
而不是
preg_match_all('(?:(--)|([0-9]+,[0-9]+) €)', ...)
答案 2 :(得分:0)
您的正则表达式可以正常运行:
$p = "/(?:(--)|([0-9]+,[0-9]+) €)/";
echo preg_match($p, "--")."\n"; // outputs 1
echo preg_match($p, "nomatch")."\n"; // outputs 0
请发布您的PHP代码,以便我们识别问题