程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 正則表達式應用:匹配email地址

正則表達式應用:匹配email地址

編輯:C#入門知識

     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.,[email protected],[email protected],,[email protected],[email protected],[email protected]";  
           //  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);                         
           }  
         
       }  

 

  由於沒有對長度限制,所以還是會匹配一些錯誤的郵箱,例如[email protected],如果需要更精確的匹配還需要進一步的修改                     域名    頂級域名

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved