我找到了这个用于电子邮件验证的正则表达式。
[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})
我希望电子邮件的最大长度为20个字符,因此我将其更改为:
([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})){0,20}
但是当我输入超过20个字符时,它接受了! 我也用过
^([_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})){0,20}$
但它没有正常工作。我想在java代码中使用它
答案 0 :(得分:1)
您不能只将{0,20}
添加到整个正则表达式中,因为这意味着每个电子邮件地址的出现次数为0到20次。
你可以使用lookahead来强制执行长度:
^(?=.{1,20}$)[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$