0

我在java中有以下用于电子邮件验证的正则表达式

^[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@([a-zA-Z0-    9!#$%&'*+/=?^_`{|}~-]+(\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])$  

我想检查电子邮件不应超过 255 个字符,我该怎么做?
谢谢

4

5 回答 5

6

把事情简单化。

if (yourString.length() <= 255 && yourString.matches(YOUR_REGEX))

于 2012-11-16T09:50:13.363 回答
4

此正则表达式适用于所有可能的电子邮件模式和不同的域。

abc@gmail.com
abc.de@gmail.in
abc.15@gmail.com
abc@def.technology

相应的正则表达式是:

(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
于 2018-02-14T04:47:23.913 回答
1

除了简单的健全性检查(它是否有'@'和看起来像 TLD 的东西,也许)和简单的字符串长度检查之外,我不会为此使用正则表达式。

完全兼容的邮件地址的正则表达式是巨大的。你真的不想去那里。

于 2012-11-16T09:53:23.520 回答
1

如果你真的想扩展关于长度的正则表达式,你可以在前面加上一个这样的前瞻表达式:

^(?=.{255}$)

结果:

=> ^(?=.{255}$)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+............
于 2012-11-16T09:59:12.173 回答
0

完成Zhonk响应: ^(?=.{6,255}$)[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z ]{2,6}

于 2016-06-02T09:22:58.490 回答