一个健壮的匹配email的正则表达式要怎么写呢?

Teaerror 2010-11-25 11:43:26
用户名可以由大小写字母数字下滑线横杠组成,中间是一个@,后面是分级或不分级的域名构成,域名也有域名的规则,应该是不能有下滑线以及中线不能当第一个字符吧,不过也不太清楚2级域名可不可以用下滑线,然后最后是.加正确的后缀结尾。

wo-shi_shui@vip.163.21cn.com //正确
gangzaidiyi@-163.com //错误
duolegedian@yeah..com //错误
meihouzhui@gmail.orc //错误
……

能写吗?
...全文
221 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这只是你认为的 E-mail 格式。

可以看看 wikipedia 上对于 E-mail 格式的说明
http://en.wikipedia.org/wiki/Email_address
hzzduoduo 2010-11-26
  • 打赏
  • 举报
回复
看看这个里面的东西吧。
http://www.360doc.com/content/07/0820/13/27908_683948.shtml
fantasy0126 2010-11-26
  • 打赏
  • 举报
回复
我自己已经测过了,楼主测一下给分吧~~
fantasy0126 2010-11-26
  • 打赏
  • 举报
回复
wikipedia上规则太麻烦了,我想如果不是写个邮件服务器或者协议什么的不用那么麻烦吧?
提供一个符合以下要求的的正则表达式
1 最少6个最长50个字符在@之前
2 可以大小写26个字母之一,加上0-9,加上-,_,.等三个允许字符,._-不能做为起始字符也不能做为结束字符
3 后面中线不能当做第一个字符,必须最少有一个.,不能出现下划线
4 @前和@后都不能出现连续的.号
5 最后必须以2-3位的英文字符结束,如com/cn/net/org等
[a-zA-Z0-9]([\\w-]+\\.)*[\\w-]*[a-zA-Z0-9]@[a-zA-Z0-9]+\\.([a-zA-Z0-9-]+\\.)*[a-zA-Z]{2,3}
6 最后3位必须是com/net/cn/org/ir/it(不区别大小写) 不允许其他,楼主自己添加补充吧.
[a-zA-Z0-9]([\\w-]+\\.)*[\\w-]*[a-zA-Z0-9]@[a-zA-Z0-9]+\\.([a-zA-Z0-9-]+\\.)*(?i)(com|net|cn|org|ir|it)

7 [\\w] 是指[a-zA-Z0-9_] ,(?i)是零宽度的不区分大小写
suciver 2010-11-26
  • 打赏
  • 举报
回复
^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧