正则表达式问题电子邮件测试

0 php regex email

模式波纹管有一些问题:

/([A-Z0-9]+[A-Z0-9\.\_\+\-]*){3,64}@(([A-Z0-9]+([-][A-Z0-9])*){2,}\.)+([A-Z0-9]+([-][A-Z0-9])*){2,}/i
Run Code Online (Sandbox Code Playgroud)

它匹配电子邮件地址,我有这个规则的问题:

[A-Z0-9\.\_\+\-]*
Run Code Online (Sandbox Code Playgroud)

如果我删除它的星,但我希望这个字符为0或更多.我在http://regexpal.com/上进行了测试,它可以在preg_match_all(PHP)上运行 - 但是没有用

谢谢

Rus*_*ias 5

为什么不使用PHPs filter_var()

filter_var('test@email.com', FILTER_VALIDATE_EMAIL)
Run Code Online (Sandbox Code Playgroud)

验证电子邮件地址没有好的正则表达式.如果你绝对必须使用正则表达式,那么可能看一下使用PHP验证电子邮件地址,正确的方法.虽然,这绝不是一个完美的衡量标准.

编辑:经过一番挖掘,我遇到了Mailparse.

Mailparse是解析和处理电子邮件的扩展.它可以处理»RFC 822和»RFC 2045(MIME)兼容的消息.

Mailparse是基于流的,这意味着它不会保留它处理的文件的内存副本 - 因此在处理大型消息时它非常有效.