最近闲着没事写了个爬虫,title,meta,正文都能用正则比较好的析取
但是在析取邮箱的时候出现不能正确的析取,
正则表达式及详细代码如下:
除了用正则还有其他什么好办法可以提取邮箱吗 private static string RegExprEmail = @"(mailto\:|contact\=)?(?<1>[^\@\s]{1,}\@(?:[^\s\.]{1,}\.){1,}(?:[a-z]{2,4}\.?){1,2})";
private static Regex RegExFindEmail = new Regex(RegExprEmail,RegexOptions.IgnoreCase|RegexOptions.Multiline);
E_Mail email = new E_Mail();//自己定义的E_Mail类
for (Match n = RegExFindEmail.Match(html); n.Success; n = n.NextMatch())
{
email.Email = n.Groups["1"].Value.Trim();
email.Mark = false;
if (!Email_Exist(email.Email))
{
email.Url = father_url.Get_url_link().ToString();
for (int i = 0; i < Common.KeyWord.Length; i++)
{
if (html.Contains(Common.KeyWord[i]))
{
email.Mark = true;
break;
}
}
Common.Email_List.Add(email);//这个是一个类public static IList<E_Mail> Email_List=new List<E_Mail>();
}
但是在析取邮箱的时候出现不能正确的析取,
正则表达式及详细代码如下:
除了用正则还有其他什么好办法可以提取邮箱吗 private static string RegExprEmail = @"(mailto\:|contact\=)?(?<1>[^\@\s]{1,}\@(?:[^\s\.]{1,}\.){1,}(?:[a-z]{2,4}\.?){1,2})";
private static Regex RegExFindEmail = new Regex(RegExprEmail,RegexOptions.IgnoreCase|RegexOptions.Multiline);
E_Mail email = new E_Mail();//自己定义的E_Mail类
for (Match n = RegExFindEmail.Match(html); n.Success; n = n.NextMatch())
{
email.Email = n.Groups["1"].Value.Trim();
email.Mark = false;
if (!Email_Exist(email.Email))
{
email.Url = father_url.Get_url_link().ToString();
for (int i = 0; i < Common.KeyWord.Length; i++)
{
if (html.Contains(Common.KeyWord[i]))
{
email.Mark = true;
break;
}
}
Common.Email_List.Add(email);//这个是一个类public static IList<E_Mail> Email_List=new List<E_Mail>();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货