如何使用regex处理长电子邮件地址

本文关键字:电子邮件地址 处理 regex 何使用 | 更新日期: 2023-09-27 18:21:43

我有以下用于电子邮件验证的正则表达式:

private const string ValidEmailRegexPattern = @"^(?:[^@'s''(),:;<>[']""]+|(?:(?:^|'.)""(?:[^'r''"";]|(?:''[''""]))*"")+)+(?<=^.{1,64})@[^'s~!@#$%^&*()=+_{}'|;,`'""?<>]{1,256}$";
public static bool IsValidEmail(string email)
{
     return !string.IsNullOrWhiteSpace(email) && ValidEmailRegex.IsMatch(email);
}

但当输入是有效的电子邮件时,它会被冻结,但最大有效长度(254个符号)如下:

"123...@gmail.com"-254符号,包括244号和@gmail.com号。

如何更改我的正则表达式?我希望我的程序能够处理这种类型的电子邮件地址。

如何使用regex处理长电子邮件地址

您可以使用MailAddress类来验证电子邮件,而不是使用regex进行验证。

MailAddress m = new MailAddress(email);

来自MSDN

代替使用正则表达式来验证电子邮件地址,您可以使用System.Net.Mail.MailAddress类。确定无论电子邮件地址是否有效,请将电子邮件地址传递给MailAddress.MailAddress(字符串)类构造函数。