邮箱正则表达式的分析
详细分析邮箱正则表达式
方法/步骤
邮箱的命名方式一般分为三部分,第一部分为邮件地址;第二部分为@;最后是第三部分为邮箱域名地址。
第一部分 邮件地址
邮件地址只能由字母、数字、下划线组成。则使用 \w对第一部分进行匹配;字符数量大于1所以第一部分匹配规则为 \w+ 。
第二部分@
@可直接使用直接用@字符进行匹配。
第三部分域名部分
域名部分由字母、数字、点组成,域名部分最少需要到二级域名。
域名组成规则
1. 26个英文字母
2. "0,1,2,3,4,5,6,7,8,9"十个数字
3. "-"(英文中的连词号,但不能是第一个字符)
使用 [0-9a-zA-Z]+[-0-9a-zA-Z]* 满足域名匹配规则
如:******@vip.qq.com
.com为顶级域名,
.qq为二级域名,
则顶级域名与二级域名均可使用 \.[0-9a-zA-Z]+[-0-9a-zA-Z]* 进行匹配,则可总结为(\.[0-9a-zA-Z]+[-0-9a-zA-Z]*)+
vip为三级域名,
三级域名使用 ([0-9a-zA-Z]+[-0-9a-zA-Z]*) 进行匹配
则第三部则可以使用 ([0-9a-zA-Z]+[-0-9a-zA-Z]*)(\.[0-9a-zA-Z]+[-0-9a-zA-Z]*)+ 进行匹配
总的正则表达式为
\w+@([0-9a-zA-Z]+[-0-9a-zA-Z]*)(\.[0-9a-zA-Z]+[-0-9a-zA-Z]*)+
使用到的正则表达式
\w 匹配数字、字母、下划线
+ 匹配前一个正则表达式至少一次
* 匹配0次或多次
[] 中的内容为单个字符可匹配的字符集
[0-9a-zA-Z] 匹配数字或字母
[-0-9a-zA-Z] 匹配数字或字母或"-"
注意事项
正则表达式可在一下网址进行测试 http://tool.oschina.net/regex