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

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

我发现最好的是

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

有更好的东西吗?

回答:

电子邮件地址: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);

以上是 C#中电子邮件验证的最佳正则表达式 的全部内容, 来源链接: utcz.com/qa/422886.html

回到顶部