日期:2014-05-18  浏览次数:20695 次

高分 求修改 正则表达式

想提取百度和谷歌搜索结果,包括标题、URL、和简介。现在代码只能提取谷歌的内容,并且内容获取的不完整。

百度例子:

<table cellpadding="0" cellspacing="0" class="result" id="18" ><tr><td class=f><h3 class="t"><a onmousedown="return c({'fm':'as','F':'778717EA','F1':'9D73F1E4','F2':'4CA6BE6B','F3':'54E5243F','T':'1329470302','title':this.innerHTML,'url':this.href,'p1':18,'y':'EFEDDFDF'})" href="http://www.se-express.com/about/about1.htm"target="_blank"><em>搜索引擎</em>分类≡三种主要<em>搜索引擎</em>种类</a>
</h3><font size=-1> 搜索引擎按其工作方式主要可分为三种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类搜索引擎(Search Index/Directory)和<em>元搜索引擎</em>(Meta Search ...<br><span class="g">www.se-express.com/about/about1.htm 2006-1-17 </span> - <a href="http://cache.baidu.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f7226bc0d063289ed108c4251a564711b2e6783f43548e823a7a52ff141bacf32172405966e88f8dd50a8bb4855e299f5447671df65663a30ed9c85154b137e45ffeae69f0ccf025e7d8c5a2da4324ce&p=c6769a4186cc42ad5ff3d20c4d07c4&user=baidu&fm=sc&query=%D4%AA%CB%D1%CB%F7%D2%FD%C7%E6&qid=aaaa17cc1c6af7be&p1=18" target="_blank" class="m">百度快照</a><span class="liketip"id="like_3292908618009573912"></span>
<br></font></td></tr></table>

谷歌例子:
<h3 class="r"><a href="http://www.sowang.com/search/meta_search.htm" target=_blank class=l onmousedown="return rwt(this,'','','','3','AFQjCNHg7RWhFwyHUHZ5EyIJqMwSZiWAgQ','','0CEcQFjAC',null,event)">中文<em>元搜索引擎</em>-- 中文搜索引擎指南网</a></h3><div class="s"><div class="f kv"><cite>www.sowang.com/search/meta_search.htm</cite><span class=gl> - <a href="http://webcache.googleusercontent.com/search?q=cache:wGc9uKiuPbsJ:www.sowang.com/search/meta_search.htm+%E5%85%83%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E&amp;cd=3&amp;hl=zh-CN&amp;ct=clnk" target=_blank onmousedown="return rwt(this,'','','','3','AFQjCNGOw2PghnD_Jgz0rHaka83Krex44A','','0CEgQIDAC',null,event)">网页快照</a></span><span class=vshid><a href="/search?hl=zh-CN&amp;newwindow=1&amp;safe=strict&amp;q=related:www.sowang.com/search/meta_search.htm+%E5%85%83%E6%90%9C%E7%B4%A2%E5%BC%95%E6%93%8E&amp;tbo=1&amp;sa=X&amp;ei=xB4-T_D4KvCviQfdh9DCBA&amp;ved=0CEkQHzAC">类似结果</a></span></div><div class="esc slp" id="poS2" style="display:none">您已公开地对此项 +1。&nbsp;<a href="#" class="fl">撤消</a></div><span class="st"><em>元搜索引擎</em>,通过一个统一的用户界面帮助用户在多个搜索引擎中选择和利用合适的(甚至是同时利用若干个)搜索引擎来实现检索操作,是对分布于网络的多种检索 <b>...</b><br></span></div>


现在的谷歌代码是:
 string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("GB2312"));
  string pattern = @"(?<=<h3[\s\S]*?)((<b>[\s\S]*?</b>[^<]*)+)[\s\S]*?(<cite>\s*([^<]+)\s*</cite>)";
  foreach (Match m in Regex.Matches(tempStr, pattern))
  {
  //循环输出
  string title = m.Groups[1].Value;//<b>什么</b>是&gt;&gt; 首页-<b>什么</b>是<b>什么</b>,搜搜就知道!
  string href_all = m.Groups[3].Value;//<cite>www.shenmeshi.com/</cite>
  string href = m.Groups[4].Value;//www.shenmeshi.com/
  }

百度代码是:html为读取的数据 string tempStr = File.ReadAllText(