regex - 正则表达式识别电子邮件地址难吗?

标签 regex email validation textmatching

我最近在某处读到,编写一个正则表达式来匹配电子邮件地址,考虑到标准的所有变化和可能性是非常困难的,并且比人们最初假设的要复杂得多。

这是为什么?

是否有任何已知且经过验证的正则表达式实际上可以完全做到这一点?

使用正则表达式匹配电子邮件地址有哪些好的替代方法?

最佳答案

对于正式电子邮件规范,是的,通过正则表达式在技术上是不可能的,因为诸如注释之类的东西会递归(特别是如果您不首先将注释删除到空白),并且各种不同的格式(电子邮件地址并不总是someone@somewhere.tld)。您可以接近(使用一些大量且难以理解的正则表达式模式),但检查电子邮件的更好方法是进行非常熟悉的握手:

  • 他们告诉您他们的电子邮件
  • 您通过电子邮件向他们发送带有 Guid 的确认链接
  • 当他们点击链接时,您就知道:

    1. 电子邮件正确
    2. 它存在
    3. 他们拥有它

比盲目接受电子邮件地址要好得多。

关于regex - 正则表达式识别电子邮件地址难吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/156430/

相关文章:

java - 在 Elasticsearch 上使用正则表达式过滤器开始的正则表达式是什么?

regex - 如何使用 grep 打印出唯一匹配的计数?

c# - 从 UserControl 传回信息

ruby - 如何按电子邮件提供商对一系列电子邮件进行排序?

Excel 宏 - 自动电子邮件

css - Angular 7 : ng-invalid vs :invalid

spring - 如何自定义 Hibernate @Size 错误消息以指示输入字段的长度

r - 我能合理拆分这些数字串吗?

java - 正则表达式一组或多组 - 正则表达式匹配带或不带端口号的 url

javascript - 用于多个 '+' 标志的电子邮件地址验证 javascript