正则表达式需要小修复

本文关键字:正则表达式 | 更新日期: 2023-09-27 17:56:19

可能的重复项:
使用正则表达式验证电子邮件地址
电子邮件验证 - 正则表达式

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

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#

正则表达式需要小修复

你需要一个大的修复。

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

按照 SLaks 的建议使用邮件地址

try 
{
   address = new MailAddress(address).Address;
   //address is valid here
} 
catch(FormatException) 
{
   //address is invalid
}

但是,如果您沉迷于正则表达式。就这样做

.*@.*