关于正则表达式:有效电子邮件地址的正则表达式?

Regular expression for valid email address?

本问题已经有最佳答案,请猛点这里访问。

完全重复:使用正则表达式验证电子邮件地址

什么是有效的电子邮件地址字符和模式,以及如何编写与之匹配的正则表达式?


干得好:

不,我不是开玩笑。网址:http://www.ex-parrot.com/~pdw/mail-rfc822-address.html


这里是一个很好的起点:

网址:http://www.regular-expressions.info/email.html

作为补充说明,该网站可能是开始正则表达式帮助和教程的最佳位置。


简短的回答是:这很复杂。

我在电子邮件验证中遇到的最完整和最准确的regex就是这里记录的那个。它不是为心脏微弱,它是复杂的,它被分成了部分,使人们更容易解析(样本代码是在Java)。但是,如果一路通过验证是值得的,我认为它不会变得更好。

请记住,规范提到了许多可能不被视为电子邮件地址典型的情况。您可能希望了解这些情况,并决定这些情况对您是否重要。

无论如何,我建议您使用单元测试来确认您的表达式涵盖了您认为重要的情况。这样,当你到处闲逛的时候,你可以确定你没有打破一些以前有效的案例。