RegEx'ing Hotmail电子邮件地址与C#

问题描述:

不幸的是,我的hMailServer不能发送电子邮件到Hotmail。如何确定给定的电子邮件地址是否是Hotmail,以防止邮件丢失。RegEx'ing Hotmail电子邮件地址与C#

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

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

有关如何检测电子邮件地址是否位于Hotmail地址族中的任何想法?

+1

我们在谈论什么语言约在这里? – NullUserException 2010-07-21 15:22:57

+0

C#/ ASP.NET MVC – Alex 2010-07-21 15:23:19

这将工作:

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); 
} 
+0

确实。我懒得添加剩余部分:P – NullUserException 2010-07-21 15:42:16

+0

这会给像[email protected]或[email protected]这样的稀有网站带来误报,而这些网站不会是hotmail地址。你可以通过改变[az]匹配来匹配任何tld的((co | com | org | edu | net | jp | ca | ...)),但我认为这是矫枉过正,你必须添加一些东西随着时间的推移 – 2010-07-21 15:51:58

+0

谢谢!我希望我也是一个RegEx大师...我只是不明白这个东西 – Alex 2010-07-21 17:11:00