php - 警告:filter_var()[function.filter-var]:未知的修饰符'+'

时间:2011-09-03 14:33:54

标签: php regex

我正在尝试使用http://www.regular-expressions.info/email.html中的正则表达式,特别是:

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

然而,当使用它时:

filter_var($email, FILTER_VALIDATE_REGEXP, array("options"=>array("regexp"=>$pattern)))

它会出现错误:

Warning: filter_var() [function.filter-var]: Unknown modifier '+'

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

你的正则表达式缺少分隔符。例如,在模式之前和之后插入分号将解决此问题。

但是,您应该使用filter_var($email, FILTER_VALIDATE_EMAIL) ,而不是推出自己的(incorrect)正则表达式。