0

我在 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# 中字符串的长度。

4

2 回答 2

0

我建议你不要设置这样的限制。如果你真的想要正则表达式。正如paxdiablo所说,SO中存在许多问题。正则表达式中的电子邮件验证

^.{1,254}$

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

于 2013-02-27T06:18:29.190 回答
0

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

^(?=.{5,254})[A-Z0-9'._%+-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}$
于 2013-02-28T01:24:19.197 回答