Email格式:[email protected]
其中“a”、“b”、“c”可任意替换,“@”和“.”位置保持不变,如果“b.c”部分是IP地址的话可以使用IP地址。要求:
1.“a”的长度不超过64个英文字符,“b.c”的长度不超过253个英文字符,“[email protected]”的长度不超过254个英文字符
2.可以使用(a–z, A–Z)
3.可以使用(0-9)
4.可以使用!, #, $, %, &, ', *, +, -, /, =, ?, ^, _, `, {, |, }, ~,(逗号分隔开的字符)
5.字符“.”不能出现在开头和结尾。
6.字符“.”不能连续出现2次,如[email protected](不支持)
7.“b.c”部分可以使用IP地址,但是必须用方括号“[”“]”括起来,如john.smith@[192.168.2.1]各位高手们,开始挑战吧:)PS:这个正则是我想拓展struts2的验证框架的,是java里面的正则。
其中“a”、“b”、“c”可任意替换,“@”和“.”位置保持不变,如果“b.c”部分是IP地址的话可以使用IP地址。要求:
1.“a”的长度不超过64个英文字符,“b.c”的长度不超过253个英文字符,“[email protected]”的长度不超过254个英文字符
2.可以使用(a–z, A–Z)
3.可以使用(0-9)
4.可以使用!, #, $, %, &, ', *, +, -, /, =, ?, ^, _, `, {, |, }, ~,(逗号分隔开的字符)
5.字符“.”不能出现在开头和结尾。
6.字符“.”不能连续出现2次,如[email protected](不支持)
7.“b.c”部分可以使用IP地址,但是必须用方括号“[”“]”括起来,如john.smith@[192.168.2.1]各位高手们,开始挑战吧:)PS:这个正则是我想拓展struts2的验证框架的,是java里面的正则。
高手啊,看问题很全面,确实遗漏了最小限制。补充下要求:
8.“a”至少一个英文字符,“b”和“c”都至少2个英文字符。
Email格式:[email protected]
其中“a”、“b”、“c”可任意替换,“@”和“.”位置保持不变,如果“b.c”部分是IP地址的话可以使用IP地址。要求:
1.“a”的长度不超过64个英文字符,“b.c”的长度不超过253个英文字符,“[email protected]”的长度不超过254个英文字符
2.可以使用(a–z, A–Z)
3.可以使用(0-9)
4.可以使用!, #, $, %, &, ', *, +, -, /, =, ?, ^, _, `, {, |, }, ~,(逗号分隔开的字符)
5.字符“.”不能出现在开头和结尾。
6.字符“.”不能连续出现2次,如[email protected](不支持)
7.“b.c”部分可以使用IP地址,但是必须用方括号“[”“]”括起来,如john.smith@[192.168.2.1]
8.“a”至少一个英文字符,“b”和“c”都至少2个英文字符。
9.“[email protected]”中不能存在空格。
这个是组合的要求啊,所以如果b.c的长度为253,那这个email根据正则匹配就不合法。 :)
这个要分开看,还是放在一起看。换句话说,是a、b、c分别满足这个条件,还是整个email地址满足这个条件。
是整个email头和尾不能出现“.”
即采用 s.matches(reg1) && s.matches(reg2)... 这样的方式来判断可以吗?
这样算不算匹配呢?
不匹配,“john.smith@[192.168.2.1]”这样的是匹配的。
if(!"".equals(str) || str != null) {
Pattern patt = Pattern.compile("\\w+(\\.\\w+)*@\\w+(\\.\\w+)+");
Matcher mat = patt.matcher(str); if (mat.matches()) {
;
} else {
return false;
}
}我在文本上刚敲的 还没有实验 你们看看这样验证行不 也给点意见
return true;
}
^(?!\.)((?!\.\.)[a-zA-Z\d!#$%&'*\+\-/=\?^_`\{|\}~.]){1,64}(?<!\.)@(?:\w+\.\w+|\[(([01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}([01]?\d{1,2}|2[0-4]\d|25[0-5])\]){1,254}$
这个用C#.net测试过了。java没有测试工具。没有验证
这一条没通过.....
[email protected]
这里发言,表示您接受了CSDN社区的用户行为准则。
请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。
我是感觉这个地方的数量控制挺麻烦的.
\w{2,} => \w*?[a-zA-Z]\w*?[a-zA-Z]\w*
題目不錯,我做錯一個,虛列點那個沒法做,你懂得。
String usedChar = "a-zA-Z0-9!#\\$%&'\\*+-/=\\?\\^_\\{\\|\\}~`\\.";
String ip = "\\[((\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])\\.){3}(\\d{1,2}|1\\d{2}|2[0-4]\\d|25[0-5])\\]";
String str = "((?=^.{7,254}$)((^[^\\.]["+usedChar+"]{0,63})@((["+usedChar+"]{2,252})\\.(["+usedChar+"]{1,251}[^\\.]$))))|(([^\\.]["+usedChar+"]{0,63})(?<!\\.{2,})@"+ip+"$)";这个有个问题,不能判断出现两个..的情况。