【问题标题】:Will this regex for email work for all emails?此电子邮件正则表达式是否适用于所有电子邮件?
【发布时间】:2012-03-18 03:22:27
【问题描述】:

我希望提高我在 Ruby 编程中使用的正则表达式技能。
我想出了下面的电子邮件匹配器。
可以改进吗?它适用于所有电子邮件地址吗?
mailto: 可以吗?

/(mailto:)*\w+@\w+.[A-z]+.[A-z]{2,4}/

它匹配像

这样的地址
bob@test.com
bob_smith@test.com
bob_smith@prefix.test.com
abc@xyz.co.uk
mailto:fred@test.com

【问题讨论】:

  • 它不适用于特殊或非拉丁字符,例如 nøx@nåx.dk
  • 您确实意识到 [mailto:]* 表示“集合中的零个或多个字符 {:, a, i, l, m, o, @ 987654331@}"?
  • 好点 ruakh,这就是我发布这个的原因。你知道如何改进吗?
  • 你的意图是什么?要查看电子邮件是否仅与您的模式匹配?或者,是看它是否是一个有效的地址?第二个问题要困难得多,因为电子邮件地址可能与您的模式匹配,但仍然不是真实的。最简单的答案是尝试向该地址发送一条消息,要求另一端的人做出回应。这样做也可以回答您的问题,以及您可能希望在后续步骤中回答的其他问题。

标签: ruby regex pattern-matching email-validation


【解决方案1】:

简短的回答:不。并非所有电子邮件都可以通过正则表达式检查。 SO上的某个地方有一个线程,如果我尝试过,他们会比我更好地解释这一点。我认为唯一检查邮件是否真的是邮件的方法是联系邮件服务器并询问用户帐户是否存在。

请在此处阅读:https://stackoverflow.com/a/1373724/81520

【讨论】:

  • 好点。但是,我注册的大多数大型网站都是为了检查格式。
猜你喜欢
  • 1970-01-01
  • 2011-02-20
  • 2011-12-28
  • 2012-01-02
  • 2015-12-03
  • 1970-01-01
相关资源
最近更新 更多