在' @'之前允许使用特殊字符同时使用正则表达式验证电子邮件地址

时间:2018-06-08 11:06:41

标签: c# c#-4.0

在@之前允许使用特殊字符(即abc_@example.com)。我们正在使用以下正则表达式:

class Program
{
    static bool IsValid(string value)
    {
        return Regex.IsMatch(value, "^(?(\")(\".+?\"@)|(([0-9a-zA-Z]((\\.(?!\\.))|[-!#\\$%&'\\*\\+/=\\?\\^`\\{\\}\\|~\\w])*)(?<=[0-9a-zA-Z])@))(?(\\[)(\\[(\\d{1,3}\\.){3}\\d{1,3}\\])|(([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,6}))$");
    }

    static void Main(string[] args)
    {
        Console.WriteLine(IsValid("example211_@hotmail.com"));
        Console.ReadLine();
    }
}

1 个答案:

答案 0 :(得分:0)

使用以下正则表达式完全满足您的要求。

return Regex.IsMatch(value, @"^([a-zA-Z0-9_*!#%&$@\-\.]+)@((\[[0-9]{1,3}" +
              @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\" +
              @".)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");