zoukankan      html  css  js  c++  java
  • [正则表达式]电子邮件中的发件人字段

    电子邮件中的发件人字段一般有以下几种形式:  
      1、"sender   name"   <sender@domain.com>  
      2、sender   name   <sender@domain.com>  
      3、sender@domain.com  
      我想匹配得到两样东西:  
      将前面的sender   name存入<fromname>,并且要去掉双引号,如果没有就返回空字符串;  
      将后面的邮件地址存入<from>,并且要去掉尖括号,如果没有就返回空字符串。  


     1 try   
     2     
     3     
     4   using   System;   
     5   using   System.Text.RegularExpressions;   
     6     
     7     
     8   string[]   slist   =   {"\"sender   name\"   <sender@domain.com>",   
     9       "sender   name   <sender@domain.com>",   
    10       "sender@domain.com"   
    11     };   
    12     
    13   Regex   r   =   new   Regex(@"""?(?<fromname>.*?)""?\s*[<]?(?<from>[^@\s]+\@[^@\s>]+)[>]?$");   
    14     
    15   foreach   (string   s   in   slist)   
    16   {   
    17   Match   m   =   r.Match(s);   
    18   Console.WriteLine("{0}   matches?   {1}",   s,   m.Success);   
    19   if   (m.Success)   
    20   {   
    21   Console.WriteLine("\tsender:***{0}***\temail:***{1}***",   m.Groups["fromname"].Value,     
    22     
    23   m.Groups["from"].Value);   
    24   }   
    25   }   
    26 


     1 try
     2 
     3 
     4 using System;
     5 using System.Text.RegularExpressions;
     6 
     7 
     8     string[] slist = {"\"sender name\" <sender@domain.com>",
     9             "sender name <sender@domain.com>",
    10             "sender@domain.com"
    11             };
    12 
    13     Regex r = new Regex(@"""?(?<fromname>.*?)""?\s*[<]?(?<from>[^@\s]+\@[^@\s>]+)[>]?$");
    14 
    15     foreach (string s in slist)
    16     {
    17         Match m = r.Match(s);
    18         Console.WriteLine("{0} matches? {1}", s, m.Success);
    19         if (m.Success)
    20         {
    21             Console.WriteLine("\tsender:***{0}***\temail:***{1}***", m.Groups["fromname"].Value,
    22 
    23 m.Groups["from"].Value);
    24         }
    25     }
    26 
    27 
  • 相关阅读:
    struts2自定义拦截器之过滤不良言论---http500可能的问题所在
    bzoj4205[FJ2015集训] 卡牌配对
    bzoj1562[NOI2009] 变换序列
    bzoj1433[ZJOI2009] 假期的宿舍
    bzoj2150 部落战争
    从bzoj2463到bzoj1443和bzoj2437 博弈+二分图匹配
    bzoj4554[Tjoi2016&Heoi2016] 游戏
    bzoj1059[ZJOI2007] 矩阵游戏
    bzoj1143[CTSC2008] 祭祀river
    bzoj3175[Tjoi2013] 攻击装置
  • 原文地址:https://www.cnblogs.com/chengulv/p/751312.html
Copyright © 2011-2022 走看看