用于验证电子邮件ID的正则表达式失败?

时间:2016-09-23 06:49:25

标签: c# .net regex

我们正在使用regex来验证电子邮件。但似乎 abcd@q.com 此电子邮件ID失败了。 任何人都可以告诉给定的正则表达式有什么问题吗?

正则表达式:

string sPattern = "^\\w+[\\w\\-\\.]*\\w+\\@\\w+([\\w\\-]*\\w+\\.\\w+){1,4}$";

编辑:我可以在给定的正则表达式中修改哪些内容,以便在@之后接受单字符和多字符域。

例如: abcd@q.com abcd@example.com

3 个答案:

答案 0 :(得分:1)

bounds

在这部分中,您需要在\w+([\\w\\-]*\\w+ @

之间
  • 至少一个字母数字char => .
  • 0或更多字母数字字符或w+ => - *
  • 至少一个字母数字char => [\\w\\-]

因为你只有一个char w+,所以检查失败了。

您应该搜索现有的电子邮件验证模式,它相当复杂!

答案 1 :(得分:0)

bool isEmail = Regex.IsMatch(emailString, @"\A(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)\Z", RegexOptions.IgnoreCase);

答案 2 :(得分:0)

您应该查找现有的正则表达式以进行电子邮件验证。但我从你的正则表达式中可以看出,你有许多不必要的“\ w”。删除它们:

^[\w\-\.]+\@([\w\-]+\.\w+){1,4}$

将有一个正常运行的正则表达式。虽然不是一个非常准确的电子邮件验证