在@之前允许使用特殊字符(即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();
}
}
答案 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})(\]?)$");