博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[置顶] 正则表达式应用:匹配email地址
阅读量:6074 次
发布时间:2019-06-20

本文共 1059 字,大约阅读时间需要 3 分钟。

       email的组成主要有三部分

        1用户名部分 2@   3域名部分

       1用户名部分

        用户名一般有数值字母下划线组成,所以正则表达式为:[\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
emailList = new List
(); 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(@"(?
[\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,如果需要更精确的匹配还需要进一步的修改

 

     

        

     

   

      

转载地址:http://pxxgx.baihongyu.com/

你可能感兴趣的文章
VM EBS R12迁移,启动APTier . AutoConfig错误
查看>>
atitit.细节决定成败的适合情形与缺点
查看>>
iOS - Library 库
查看>>
MATLAB 读取DICOM格式文件
查看>>
spring事务管理(Transaction)
查看>>
django.contrib.auth登陆注销学习
查看>>
js执行本地exe文件的3种方法
查看>>
理解B树索引
查看>>
vi编辑器的命令集合
查看>>
Mysql利用binlog恢复数据
查看>>
解决 Windows启动时要求验证
查看>>
我的友情链接
查看>>
用yum安装mariadb
查看>>
一点IT"边缘化"的人的思考
查看>>
Gallery循环滑动
查看>>
Sql与C#中日期格式转换总结
查看>>
iOS开发流程总结
查看>>
hadoop datanode 启动出错
查看>>
js颜色拾取器
查看>>
IDEA使用(1)intellIJ idea 配置 svn
查看>>