我用这个
@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"
regexp验证电子邮件
([\w\.\-]+)-适用于一级域(许多字母和数字,也包括点和连字符)
([\w\.\-]+)
([\w\-]+)-适用于二级域
([\w\-]+)
((\.(\w){2,3})+)-适用于包含点和2或3的其他一级域(从3到无穷大)文字
((\.(\w){2,3})+)
这个正则表达式有什么问题?
编辑:它与“ something@someth.ing”电子邮件不匹配
TLD之类的.museum不能通过这种方式进行匹配,并且还有其他一些长TLD。此外,您还可以使用验证电子邮件地址MailAddress类如微软解释这里的注意事项:
可以使用System.Net.Mail.MailAddress类,而不是使用正则表达式来验证电子邮件地址。若要确定电子邮件地址是否有效,请将电子邮件地址传递给MailAddress.MailAddress(String)类构造函数。
public bool IsValid(string emailaddress) { try { MailAddress m = new MailAddress(emailaddress); return true; } catch (FormatException) { return false; } }
这省去了很多麻烦,因为您不必编写(或尝试了解别人的)正则表达式。