C#提取网页数据正则表达式二
string regstr = @"(?i)(?<=<td.*?.*?>)[^<]+(?=</td>)"; //提取td的文字
string regstr = @"<a\s+href=(?<url>.+?)>(?<content>.+?)</a>"; //提取链接的内容
string regstr = @"<td.+?><a\s+href=(?<url>.+?)>(?<content>.+?)</a></td>"; //提取TD中链接的内容
string regstr = @"<td.+?><span.+?>(?<content>.+?)</span></td>"; //提取TD中span的内容
string regstr = @"<td.+?>(?<content>.+?)</td>"; //获取TD之间所有的内容
string regstr = @"<td>(?<content>.+?)-<font color=#0000ff>推荐</font></td>"; //获取内容
全文提取其中内容
Regex reg = new Regex(@"<P\sclass=clientnamefont><B>(.*?)</B>");
var result = reg.Match(内容).Groups;
username = result[1].ToString();
//foreach (var item in result)
//{
// Console.WriteLine(item);
// }
//直接获取第几项中的数据,其中里边不能根据规则匹配完全的循环(初学者暂没时间研究做是做个记录方便自己)
username = result[1].ToString();
一循环内替换:
string regstr = @"(?i)[\<]td.*?[\>].*?(</td>)"; //提取页面所有TD内容
string regReplace = @"(?i)[\<]td.*?[\>]"; //将所有<td......> 替换成<td>
Regex reg = new Regex(regstr, RegexOptions.IgnoreCase | RegexOptions.Singleline);
MatchCollection mc = reg.Matches(data);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups[0].ToString());
Console.WriteLine("------------------------------");
string s = Regex.Replace(m.Groups[0].ToString(), regReplace, "<td>", RegexOptions.IgnoreCase);
Console.WriteLine(s);
}
二统一替换:
string regstr = @"(?i)[\<]td.*?[\>].*?(</td>)"; //提取页面所有TD内容
string regReplace = @"(?i)[\<]td.*?[\>]"; //将所有<td......> 替换成<td>
Regex reg = new Regex(regstr, RegexOptions.IgnoreCase | RegexOptions.Singleline);
string s = Regex.Replace(data, regReplace, "<td>", RegexOptions.IgnoreCase);
MatchCollection mc = reg.Matches(s);
foreach (Match m in mc)
{
Console.WriteLine(m.Groups[0].ToString());
Console.WriteLine("------------------------------");
}