正则表达式需要小修复

时间:2013-01-26 09:13:09

标签: c# regex validation email

  

可能重复:
  Using a regular expression to validate an email address
  Email Validation - Regular Expression

我使用下面的正则表达式来验证电子邮件地址。但是我们发现这个正则表达式接受了“*”或“/”,但它不应该!

Regex.IsMatch(email, 
   @"^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" +
   @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$",
   RegexOptions.IgnoreCase, 
   TimeSpan.FromMilliseconds(250));

我需要你帮助改进RE以不允许“*”或“/” 仅供参考,上述代码在C#中

1 个答案:

答案 0 :(得分:1)

你需要一个大的修复..

如果您想验证电子邮件地址正则表达式不是正确的选择。

根据MailAddress

的建议使用SLaks
try 
{
   address = new MailAddress(address).Address;
   //address is valid here
} 
catch(FormatException) 
{
   //address is invalid
}

但如果你沉迷于正则表达式,那么就这样做

.*@.*