网页源代码取值的正则表达式

jishengzu 2009-12-09 03:10:02
      </td>
<!--right side-->
<td class="s_r"><div class="borl"><div class="c1" ss_c="w.r.hot"><h4>热门搜索</h4><ol class="content"><li>•<a href="/q?w=%D0%C7%D7%F9&sc=web&pid=a.s&ch=w.hot" title="探究星座的奥秘" class="f14">星座</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%B0%A2%CD%AF%C4%BE&sc=web&pid=a.s&ch=w.hot" title="电影资料及影讯" class="f14">阿童木</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%D5%D4%B1%BE%C9%BD%C2%F2%BF%CD%BB%FA&sc=web&pid=a.s&ch=w.hot" title="赵本山买客机" class="f14">赵本山买客机</a></li><li>•<a href="/q?w=%BB%C6%BD%F0&sc=web&pid=a.s&ch=w.hot" title="黄金" class="f14">黄金</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%C0%FB%C2%CA&sc=web&pid=a.s&ch=w.hot" title="利率" class="f14">利率</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%CD%F5%CC%EC%C2%D7%CA%DC%C9%F3&sc=web&pid=a.s&ch=w.hot" title="王天伦受审" class="f14">王天伦受审</a></li><li>•<a href="/q?w=%B0%C2%B0%CD%C2%ED%C1%EC%C5%B5%BD%B1&sc=web&pid=a.s&ch=w.hot" title="奥巴马领诺奖" class="f14">奥巴马领诺奖</a></li><li>•<a href="/q?w=%B9%AC%D0%C4%BC%C6&sc=web&pid=a.s&ch=w.hot" title="热播电视剧 " class="f14">宫心计</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%D1%A6%BF%AD%E7%F7%D0%E3%C3%DB%C7%E9&sc=web&pid=a.s&ch=w.hot" title="薛凯琪秀蜜情" class="f14">薛凯琪秀蜜情</a></li><li>•<a href="/q?w=%C4%D0%C0%BA%B2%D2%B0%DC%BA%AB%B9%FA&sc=web&pid=a.s&ch=w.hot" title="男篮惨败韩国" class="f14">男篮惨败韩国</a></li></ol></div>
</div>
</td>


用正则表达式取出<span class="zdq" title="搜搜直达区-最新最准的搜索体验">元素前面的超链接的文本值
也就是拿出来后得到的值是:星座,阿童木,黄金,利率,宫心计
...全文
207 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangshun 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jishengzu 的回复:]
引用 10 楼 jiangshun 的回复:
C# codestring html=@" </div>
<div class=""k""> </div>
</td>
<!--right side-->
?-


谢谢jiangshun
这里还差最后一步
用正则表达式取出 <span class="zdq" title="搜搜直达区-最新最准的搜索体验">元素前面的超链接的文本值
也就是拿出来后得到的值是:星座,阿童木,黄金,利率,宫心计

赵本山买客机这个不是啊

[/Quote]

修改了一下,应该OK了
Regex reg = new Regex(@"(?<=<a[^>]+>)[^>]+(?=</a>\s*<span class=""zdq"" title=""搜搜直达区-最新最准的搜索体验"">)");
jishengzu 2009-12-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jiangshun 的回复:]
C# codestring html=@"</div>
<div class=""k""> </div>
</td>
<!--right side-->
?-
[/Quote]

谢谢jiangshun
这里还差最后一步
用正则表达式取出 <span class="zdq" title="搜搜直达区-最新最准的搜索体验">元素前面的超链接的文本值
也就是拿出来后得到的值是:星座,阿童木,黄金,利率,宫心计

赵本山买客机这个不是啊
jiangshun 2009-12-09
  • 打赏
  • 举报
回复
            string html = @"</div>
<div class=""k""> </div>
</td>
<!--right side-->
<td class=""s_r""> <div class=""borl""> <div class=""c1"" ss_c=""w.r.hot""> <h4>热门搜索 </h4> <ol class=""content""> <li>• <a href=""/q?w=%D0%C7%D7%F9&sc=web&pid=a.s&ch=w.hot"" title=""探究星座的奥秘"" class=""f14"">星座 </a> <span class=""zdq"" title=""搜搜直达区-最新最准的搜索体验"">   </span> </li> <li>• <a href=""/q?w=%B0%A2%CD%AF%C4%BE&sc=web&pid=a.s&ch=w.hot"" title=""电影资料及影讯"" class=""f14"">阿童木 </a> <span class=""zdq"" title=""搜搜直达区-最新最准的搜索体验"">   </span> </li> <li>• <a href=""/q?w=%D5%D4%B1%BE%C9%BD%C2%F2%BF%CD%BB%FA&sc=web&pid=a.s&ch=w.hot"" title=""赵本山买客机"" class=""f14"">赵本山买客机 </a> </li> <li>• <a href=""/q?w=%BB%C6%BD%F0&sc=web&pid=a.s&ch=w.hot"" title=""黄金"" class=""f14"">黄金 </a> <span class=""zdq"" title=""搜搜直达区-最新最准的搜索体验"">   </span> </li> <li>• <a href=""/q?w=%C0%FB%C2%CA&sc=web&pid=a.s&ch=w.hot"" title=""利率"" class=""f14"">利率 </a> <span class=""zdq"" title=""搜搜直达区-最新最准的搜索体验"">   </span> </li> <li>• <a href=""/q?w=%CD%F5%CC%EC%C2%D7%CA%DC%C9%F3&sc=web&pid=a.s&ch=w.hot"" title=""王天伦受审"" class=""f14"">王天伦受审 </a> </li> <li>• <a href=""/q?w=%B0%C2%B0%CD%C2%ED%C1%EC%C5%B5%BD%B1&sc=web&pid=a.s&ch=w.hot"" title=""奥巴马领诺奖"" class=""f14"">奥巴马领诺奖 </a> </li> <li>• <a href=""/q?w=%B9%AC%D0%C4%BC%C6&sc=web&pid=a.s&ch=w.hot"" title=""热播电视剧 "" class=""f14"">宫心计 </a> <span class=""zdq"" title=""搜搜直达区-最新最准的搜索体验"">   </span> </li> <li>• <a href=""/q?w=%D1%A6%BF%AD%E7%F7%D0%E3%C3%DB%C7%E9&sc=web&pid=a.s&ch=w.hot"" title=""薛凯琪秀蜜情"" class=""f14"">薛凯琪秀蜜情 </a> </li> <li>• <a href=""/q?w=%C4%D0%C0%BA%B2%D2%B0%DC%BA%AB%B9%FA&sc=web&pid=a.s&ch=w.hot"" title=""男篮惨败韩国"" class=""f14"">男篮惨败韩国 </a> </li> </ol> </div>";


//<span class="zdq" title="搜搜直达区-最新最准的搜索体验">
Regex reg = new Regex(@"(?<=<a.*?>)[^>]+(?=</a>.*?<span class=""zdq"" title=""搜搜直达区-最新最准的搜索体验"">)");
MatchCollection mc = reg.Matches(html);
Console.WriteLine("/*\n------输出结果------------");
foreach (Match m in mc)
{
Console.WriteLine(m.Groups[0].ToString());

}



Console.WriteLine("*/");

/*
------输出结果------------
星座
阿童木
赵本山买客机
黄金
利率
王天伦受审
奥巴马领诺奖
宫心计
*/
jishengzu 2009-12-09
  • 打赏
  • 举报
回复
不行啊 上面的方法一个值都拿不到!
路人乙e 2009-12-09
  • 打赏
  • 举报
回复
如果要取的是多个值的话:
Regex reg= new Regex(regstr);
Match mat = reg.Match(html);
List<string> list = new List<string>();
while(mat.Success){
list.Add(mat.Groups[1].Value);
mat = reg.Match(html, mat.Index+mat.Length);
}
c_l2009 2009-12-09
  • 打赏
  • 举报
回复
Regex regex = new Regex(@"<class="14">[^ <]+? </a>", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Match match = regex.Match(html);
while (match.Success)
{
string str = match.Value;
match = match.NextMatch();
}
路人乙e 2009-12-09
  • 打赏
  • 举报
回复
string html = "这里是HTML内容";
string regstr = @">(.+?)</a><span class=""zdq"" title=";
string result = new Regex(regstr).Match(html).Groups[1].Value;
jishengzu 2009-12-09
  • 打赏
  • 举报
回复
<a href="/q?w=%D0%C7%D7%F9&sc=web&pid=a.s&ch=w.hot" title="探究星座的奥秘" lass="f14">星座 </a> <span class="zdq" title="搜搜直达区-最新最准的搜索体验">

<a href="/q?w=%B0%A2%CD%AF%C4%BE&sc=web&pid=a.s&ch=w.hot" title="电影资料及影讯" class="f14">阿童木 </a> <span class="zdq" title="搜搜直达区-最新最准的搜索体验">

<a href="/q?w=%B9%AC%D0%C4%BC%C6&sc=web&pid=a.s&ch=w.hot" title="热播电视剧 " class="f14">宫心计 </a> <span class="zdq" title="搜搜直达区-最新最准的搜索体验">

<a href="/q?w=%D1%A6%BF%AD%E7%F7%D0%E3%C3%DB%C7%E9&sc=web&pid=a.s&ch=w.hot" title="薛凯琪秀蜜情" class="f14">薛凯琪秀蜜情 </a>

用正则表达式取出 <span class="zdq" title="搜搜直达区-最新最准的搜索体验">元素前面的超链接的文本值 也就是:星座,阿童木,宫心计

要注意的是正则表达式是在全页面源代码中匹配值的


c_l2009 2009-12-09
  • 打赏
  • 举报
回复
<class="14">[^<]+?</a>
jishengzu 2009-12-09
  • 打赏
  • 举报
回复
格式乱了,不知道怎么弄才好。
用正则表达式取出 <span class="zdq" title="搜搜直达区-最新最准的搜索体验">元素前面的超链接的文本值

请高手帮忙
c_l2009 2009-12-09
  • 打赏
  • 举报
回复
需求说的不够清楚。
jishengzu 2009-12-09
  • 打赏
  • 举报
回复
</div>
<div class="k"></div>
</td>
<!--right side-->
<td class="s_r"><div class="borl"><div class="c1" ss_c="w.r.hot"><h4>热门搜索</h4><ol class="content"><li>•<a href="/q?w=%D0%C7%D7%F9&sc=web&pid=a.s&ch=w.hot" title="探究星座的奥秘" class="f14">星座</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%B0%A2%CD%AF%C4%BE&sc=web&pid=a.s&ch=w.hot" title="电影资料及影讯" class="f14">阿童木</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%D5%D4%B1%BE%C9%BD%C2%F2%BF%CD%BB%FA&sc=web&pid=a.s&ch=w.hot" title="赵本山买客机" class="f14">赵本山买客机</a></li><li>•<a href="/q?w=%BB%C6%BD%F0&sc=web&pid=a.s&ch=w.hot" title="黄金" class="f14">黄金</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%C0%FB%C2%CA&sc=web&pid=a.s&ch=w.hot" title="利率" class="f14">利率</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%CD%F5%CC%EC%C2%D7%CA%DC%C9%F3&sc=web&pid=a.s&ch=w.hot" title="王天伦受审" class="f14">王天伦受审</a></li><li>•<a href="/q?w=%B0%C2%B0%CD%C2%ED%C1%EC%C5%B5%BD%B1&sc=web&pid=a.s&ch=w.hot" title="奥巴马领诺奖" class="f14">奥巴马领诺奖</a></li><li>•<a href="/q?w=%B9%AC%D0%C4%BC%C6&sc=web&pid=a.s&ch=w.hot" title="热播电视剧 " class="f14">宫心计</a><span class="zdq" title="搜搜直达区-最新最准的搜索体验">  </span></li><li>•<a href="/q?w=%D1%A6%BF%AD%E7%F7%D0%E3%C3%DB%C7%E9&sc=web&pid=a.s&ch=w.hot" title="薛凯琪秀蜜情" class="f14">薛凯琪秀蜜情</a></li><li>•<a href="/q?w=%C4%D0%C0%BA%B2%D2%B0%DC%BA%AB%B9%FA&sc=web&pid=a.s&ch=w.hot" title="男篮惨败韩国" class="f14">男篮惨败韩国</a></li></ol></div>

110,566

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧