匹配来自html字符串的正则表达式

时间:2013-12-26 09:47:18

标签: c# asp.net regex

通过html文本获取电子邮件的麻烦

     string istr = "<a href = 'mailto:myemail@mail.com'>Email owner</a>";
        protected void Button1_Click(object sender, EventArgs e)
        {

        // var emailregex = new Regex(@"\b\S+@mail\.com\b", RegexOptions.IgnoreCase | RegexOptions.Compiled);

       var emailregex = new Regex(@"\b(?<mail>[a-zA-Z_0-9.-]+\@[a-zA-Z_0-9.-]+\.\w+)\b", RegexOptions.IgnoreCase | RegexOptions.Compiled);

            Label1.Text = emailregex.Replace(istr, "${mail}");
        }

我未能获得“myemail@mail.com”。输出是完整的html字符串

任何想法?

3 个答案:

答案 0 :(得分:3)

你可以使用匹配方法

emailregex.Match(istr).Groups["mail"].Value

答案 1 :(得分:1)

如果你想要电子邮件,你应该这样做:

Match m = emailregex.Match(istr);
if (m.Success)
    Label1.Text = m.Groups["mail"].Value;
else
    Label1.Text = "No match";

答案 2 :(得分:1)

这将为您提供带有mailto的电子邮件地址,您可以将其子字符串。

string istr = "<a href = 'mailto:myemail@mail.com'>Email owner</a>";
    string pattern = @"mailto:[A-z  0-9 .].com";
     MatchCollection matchingFinenames = Regex.Matches(istr, pattern);