我已经看到了许多针对不同编程语言的正则表达式,它们都旨在验证电子邮件地址。我看到许多评论说,有关的表达在某些情况下不起作用,它们太严格或太宽容。我正在寻找的是可以在我的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);