我最近在某处读到,编写一个正则表达式来匹配电子邮件地址,考虑到标准的所有变化和可能性是非常困难的,并且比人们最初假设的要复杂得多。
这是为什么?
是否有任何已知且经过验证的正则表达式实际上可以完全做到这一点?
使用正则表达式匹配电子邮件地址有哪些好的替代方法?
最佳答案
对于正式电子邮件规范,是的,通过正则表达式在技术上是不可能的,因为诸如注释之类的东西会递归(特别是如果您不首先将注释删除到空白),并且各种不同的格式(电子邮件地址并不总是someone@somewhere.tld)。您可以接近(使用一些大量且难以理解的正则表达式模式),但检查电子邮件的更好方法是进行非常熟悉的握手:
- 他们告诉您他们的电子邮件
- 您通过电子邮件向他们发送带有 Guid 的确认链接
当他们点击链接时,您就知道:
- 电子邮件正确
- 它存在
- 他们拥有它
比盲目接受电子邮件地址要好得多。
关于regex - 正则表达式识别电子邮件地址难吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/156430/