通过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字符串
任何想法?
答案 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);