请教:如何从一个长字符串中提取出email地址?
比如“adadf [email protected] 是我的email地址”

解决方案 »

  1.   

    ^([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))$
      

  2.   

    应该是这样的,上面多了一个开头和结尾   ([a-zA-Z0-9_\-])+(\.([a-zA-Z0-9_\-])+)*@((\[(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5])))\.(((([0-1])?([0-9])?[0-9])|(2[0-4][0-9])|(2[0-5][0-5]))\]))|((([a-zA-Z0-9])+(([\-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([\-])+([a-zA-Z0-9])+)*))
      

  3.   

    string s = "adadf [email protected] 是我的email地址";
    string ptn = @"[a-z\d_\-]+@[a-z\d_\-]+(.[a-z\d_\-]+)+"; Regex reg = new Regex(ptn, RegexOptions.IgnoreCase);
    Match m = reg.Match(s); Console.WriteLine(m.ToString());
      

  4.   

    linuxyf 大哥,能否连程序代码一起给我呢?我不会写,不要笑话小弟哦。呵呵。
      

  5.   

    string s = "adadf [email protected] 是我的email地址";
    string ptn = @"[a-z\d_\-]+@[a-z\d_\-]+(.[a-z\d_\-]+)+";Regex reg = new Regex(ptn, RegexOptions.IgnoreCase);
    Match m = reg.Match(s);Console.WriteLine(m.ToString());