[置顶] 正则表达式应用:匹配email地址
2013-09-10 20:55
316 查看
email的组成主要有三部分
1用户名部分 2@ 3域名部分
[b] 1用户名部分
[/b]
用户名一般有数值字母下划线组成,所以正则表达式为:[\da-zA-Z_]+,也可以写成[0-9a-zA-Z_]+
2@
由于是固定的普通字符,所以正则表达式就是:@
3域名部分
一般是几个数字字母的组合接着是点号,会重复一次或者多次,最后是顶级域名(包括国家域名和组织)有字母组成
故正则表达式为:([-\dA-Za-z]+\.)+[a-zA-Z]{2,}
([-\dA-Za-z]+\.)+;匹配字母数值的组合接着一个点号,重复一次或者多次
[a-zA-Z]{2,}:匹配顶级域名,字母组成,至少两个字符
因此匹配邮箱的正则表达式为:[\da-zA-Z_]+@([-\dA-Za-z]+\.)+[a-zA-Z]{2,}
测试代码:
由于没有对长度限制,所以还是会匹配一些错误的邮箱,例如xue@163.coommmmmmmmm,如果需要更精确的匹配还需要进一步的修改
域名
顶级域名
1用户名部分 2@ 3域名部分
[b] 1用户名部分
[/b]
用户名一般有数值字母下划线组成,所以正则表达式为:[\da-zA-Z_]+,也可以写成[0-9a-zA-Z_]+
2@
由于是固定的普通字符,所以正则表达式就是:@
3域名部分
一般是几个数字字母的组合接着是点号,会重复一次或者多次,最后是顶级域名(包括国家域名和组织)有字母组成
故正则表达式为:([-\dA-Za-z]+\.)+[a-zA-Z]{2,}
([-\dA-Za-z]+\.)+;匹配字母数值的组合接着一个点号,重复一次或者多次
[a-zA-Z]{2,}:匹配顶级域名,字母组成,至少两个字符
因此匹配邮箱的正则表达式为:[\da-zA-Z_]+@([-\dA-Za-z]+\.)+[a-zA-Z]{2,}
测试代码:
private static void Test() { List<string> emailList = new List<string>(); string email = "xue@163.,xue@163.com12,2707@qq.com,,xue@yahoo.com.cn,xue@163.com,xue@163.com12"; // Regex reg2 = new Regex(@"^\da-zA-Z_]+@([-\dA-Za-z]+\.)+[a-zA-Z]{2,}$");验证email的正则表达式 Regex reg = new Regex(@"(?<email>[\da-zA-Z_]+@([-\dA-Za-z]+\.)+[a-zA-Z]{2,})"); Match m = reg.Match(email); foreach (Match item in reg.Matches(email)) { emailList.Add(item.Groups["email"].Value); } }
由于没有对长度限制,所以还是会匹配一些错误的邮箱,例如xue@163.coommmmmmmmm,如果需要更精确的匹配还需要进一步的修改
域名
顶级域名
相关文章推荐
- 正则表达式应用:匹配email地址
- 《python3廖雪峰》正则表达式匹配Email地址练习题答案
- [置顶] 正则表达式应用:匹配IP地址
- 【技术】正则表达式—匹配电话号码,网址链接,Email地址
- 正则表达式,匹配中文字符、手机号、Email地址、网址URL、HTML标记、国内电...
- 正则表达式的应用—爬取网页上的email地址
- perl 自定义包/模块的使用(正则表达式匹配email地址和ip)
- 匹配Email地址的正则表达式
- 正则表达式,匹配中文字符、手机号、Email地址、网址URL、HTML标记、国内电...
- perl 自定义包/模块的使用(正则表达式匹配email地址和ip)
- 正则表达式匹配EXCEL地址字符串
- IPv4 地址匹配 正则表达式
- jquery使用正则表达式验证email地址的方法
- JavaScript常用的正则表达式应用(ip,email,data,time)
- 用javascript的正则表达式来验证Email地址是否格式正确
- C#正则表达式匹配HTML中的图片路径,图片地址
- [置顶] 通配符匹配(Wildcard Matching)与正则表达式匹配(Regular Expression Matching)解法解析
- [置顶] 正则表达式应用:分析查询字符串
- 用 C# 的正则表达式匹配 HTML 中的图片地址
- php正则表达式抽取email地址函数