【问题标题】:RegEx'ing Hotmail email addresses with C#使用 C# 正则表达式的 Hotmail 电子邮件地址
【发布时间】:2010-07-21 15:21:21
【问题描述】:

很遗憾,我的 hMailServer 无法向 Hotmail 发送电子邮件。如何确定给定的电子邮件地址是否为 Hotmail,以防止邮件丢失。

Hotmail 电子邮件可以是: * @live.com * @live.fr[pt][ru][etc] * @hotmail.com, * @live.com.jp * @msn.com * 以及涉及 MSN、Hotmail 和 Live 的许多国家 TLD 特定组合。

似乎不可能使用正则表达式来过滤它。

关于如何检测电子邮件地址是否在 Hotmail 地址系列中的任何想法?

【问题讨论】:

  • 我们在这里讨论的是什么语言?

标签: c# regex email


【解决方案1】:

这将起作用:

function bool IsHotmailAddress(string email) {
    var r = new Regex(@"\@(live|hotmail)\.[a-z]{2,3}(\.[a-z]{2,3})?$", RegexOptions.IgnoreCase);
    return r.IsMatch(email);
}

【讨论】:

  • 确实如此。我懒得添加其余部分:P
  • 这会给像 alex@live.n2.com 或 alex@live.cms.com 这样不会是 hotmail 地址的稀有网站带来误报。您可以通过更改 [a-z] 匹配以匹配任何 tld 的 ( (co|com|org|edu|net|jp|ca|...) 来解决此问题,但我认为这太过分了,您必须添加一些内容随着时间的推移。
  • 谢谢!我希望我也是 RegEx 大师……我只是不明白这些东西。
  • @Alex 尽量不要使用太多你没有得到的东西;它导致无法调试的代码。相反,自学! regular-expressions.info/reference.html 很棒。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 2012-01-25
  • 2011-10-14
  • 1970-01-01
相关资源
最近更新 更多