• [置顶] 正则表达式应用:匹配email地址


           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<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,如果需要更精确的匹配还需要进一步的修改

         

            

         域名

       顶级域名

          

  • 相关阅读:
    HttpInvoker-----服务端实现
    RMI实现-----客户端的实现
    RMI实现-----服务端的实现
    远程服务(RMI)使用示例
    DispatcherServlet的逻辑处理(下篇)
    DispatcherServlet的逻辑处理(上篇)
    SpringMVC-----DispatcherServlet
    SpringMVC-----ContextLoaderListener
    爬取淘宝笔记本电脑数据(一)
    哔哩哔哩自动播放视频
  • 原文地址:https://www.cnblogs.com/james1207/p/3313353.html
Copyright © 2020-2023  润新知