将长度验证合并到现有的电子邮件地址格式正则表达式中

时间:2013-02-27 06:13:24

标签: c# regex email-validation

我在C#中使用此正则表达式,根据http://www.regular-expressions.info/email.html的信息进行电子邮件格式验证:

Regex.IsMatch("test@gmail.com", 
              @"^[A-Z0-9'._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}$",RegexOptions.IgnoreCase);

我还想确认电子邮件的总长度在5到254个字符之间。如何修改此正则表达式以满足长度条件? 我不想明确地检查C#中字符串的长度。

2 个答案:

答案 0 :(得分:0)

我建议你不要这样限制。如果你真的想要正则表达式。正如paxdiablo所说,SO中存在许多问题。 Email validation in regex

^.{1,254}$

http://rick.measham.id.au/paste/explain.pl?regex=%5E.%7B1%2C150%7D%24

答案 1 :(得分:0)

虽然单独进行长度检查可能更简洁,但您可以通过在表达式的开头添加非捕获前瞻来合并长度约束:

^(?=.{5,254})[A-Z0-9'._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}$