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

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

邮件地址最基本的格式可以看作是 <用户名@域名>。对于用户名,各个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次以上

$:匹配结尾

经验证可以达到目的。

本人刚学正则表达式,敬请斧正。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有