小编典典

C#中电子邮件验证的最佳正则表达式

c#

我已经看到了许多针对不同编程语言的正则表达式,它们都旨在验证电子邮件地址。我看到许多评论说,有关的表达在某些情况下不起作用,它们太严格或太宽容。我正在寻找的是可以在我的C#代码中使用的正则表达式。

我发现最好的是

^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$

有更好的东西吗?


阅读 648

收藏
2020-05-19

共1个答案

小编典典

电子邮件地址:RFC 2822格式
与常规电子邮件地址匹配。不检查顶级域。
要求“不区分大小写”选项为开。

[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?

用法:

bool isEmail = Regex.IsMatch(emailString, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase);
2020-05-19