62,046
社区成员
发帖
与我相关
我的任务
分享
string str = File.ReadAllText(@"E:\a.txt", Encoding.GetEncoding("gb2312"));
Regex reg = new Regex(@"(?is)(?<=<div[^>]*?class=""NewsList""[^>]*?>(?:(?!</?div).)*)<a[^>]*?href=(['""\s]?)(?<href>[^'""\s]+)\1[^>]*?>(?<txt>.*?)</a>");
foreach (Match m in reg.Matches(str))
Console.WriteLine("{0}=={1}", m.Groups["href"].Value, m.Groups["txt"].Value);
/*
http://www.baidu.com==标题一
http://www.163.com==标题二
http://www.baidu.com==标题1
http://www.163.com==标题2
http://www.163.com==标题3
http://www.baidu.com==标题4
http://www.163.com==标题5
http://www.baidu.com==标题6
http://www.163.com==标题7
http://www.163.com==标题8
*/
string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));
//获取固定NewsList为div的内容
tempStr = Regex.Match(tempStr, @"<div[^>]+class=(['""]?)NewsList\1[^>]*>[\s\S]+</div>").Value;
//获取div链接
string pattern = @"<a[^>]*href=(""(?<href>[^""]*)""|'(?<href>[^']*)'|(?<href>[^\s>]*))[^>]*>(?<text>[\s\S]*?)</a>";
foreach (Match m in Regex.Matches(tempStr, pattern))
{
//循环输出
string matchtext = m.Value;
string href = m.Groups["href"].Value;// 这是href内容
string text = m.Groups["text"].Value;// 这是text内容,就是<a>这里的内容</a>
}
string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));
string pattern = @"<a[^>]*href=(""(?<href>[^""]*)""|'(?<href>[^']*)'|(?<href>[^\s>]*))[^>]*>(?<text>[\s\S]*?)</a>";
foreach (Match m in Regex.Matches(tempStr, pattern))
{
//循环输出
string matchtext = m.Value;
string href = m.Groups["href"].Value;// 这是href内容
string text = m.Groups["text"].Value;// 这是text内容,就是<a>这里的内容</a>
}