关于邮件地址的正则表达式

邮件地址最基本的格式可以看作是 <用户名@域名>。对于用户名,各个ISP没有统一的标准,除了数字和字母外,有的允许有<_>,有的允许有<.>,也有的两者皆可,或者允许其他的特殊字符。对此我们只能根据具体的情况加以判断。
文中假设除字母和数字外还允许<.><_>,<.><_>不能出现在首末位,<.><_>不能相连。域名中各段除数字和字母外只允许出现<->,且<->不能出现在首位和末位,各段用<.>连接。我们还可从域名得知最后一段大于一位且只有字母。
下面我们就可以依据以上假设写出如下表达式来判断是否该串是一个邮件地址:

^([a-z0-9A-Z]+[-|/.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?/.)+[a-zA-Z]{2,}$

稍作解释:
^:匹配开始
([a-z0-9A-Z]+[-|/.]?)+:数字或字母>1位 + <->或<.>,以上组合重复1次以上
[a-z0-9A-Z]:用户名以数字或字母结尾
@:匹配<@>
(
[a-z0-9A-Z]+:匹配多位数字或字母
(-[a-z0-9A-Z]+)?:匹配 -加多位数字或字母 0次或1次
/.:匹配<.>
)+:匹配括号中内容多次
[a-zA-Z]{2,}:匹配字母2次以上
$:匹配结尾

经验证可以达到目的。
本人刚学正则表达式,敬请斧正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值