电子邮件验证-我的正则表达式代码有什么问题


Email validation - What is wrong with my regex code?

我正在尝试使用preg_match..验证电子邮件地址

但是我得到这个错误…

警告:preg_match():未知修饰符'+'

这是我的代码

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

有人能告诉我我的正则表达式有什么问题吗?

谢谢

当您使用preg_match时,您需要在正则表达式周围放置分隔符。标准为/。如果在表达式中使用分隔符,则必须对其进行转义。

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

你也可以考虑使用

filter_var($email, FILTER_VALIDATE_EMAIL);