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 
  • 相关阅读:
    spring 心跳更新
    eclipse 控制台输出太多,显示不完整
    String
    iOS 开发之如何生成SDK(2)-----生成framework
    如何防止自己的APP被Hook
    JavaAPI类
    Java面向对象三大特性—封装
    Java类与对象
    Java基础易错点1
    Java数组反转及二维数组
  • 原文地址:https://www.cnblogs.com/chengulv/p/751312.html
Copyright © 2011-2022 走看看