我想获取谷歌搜索结果中的所有网页链接。以前用
 Regex regTable = new Regex(@"(?is)<h3[^>]*?>(?><h3[^>]*>(?<o>)|</h3>(?<-o>)|(?:(?!</?h3\b).)*)*(?(o)(?!))</h3>", RegexOptions.IgnoreCase);
Regex regA = new Regex(@"(?is)<a\b[^>]*?href=(['""]?)(?<link>[^'""\s>]+)\1[^>]*>(?<title>.*?)</a>", RegexOptions.IgnoreCase);
 可以抓取到。现在不行了。正则高手给看看是不是抓取方式变了?这俩个正则需要怎么改一下。在线等...

解决方案 »

  1.   


    /aclk?sa=L&ai=Cx8eklI_6T_qiGZHviQeFosXjC5e1q9IDl-yNrzWD5q3SAQgAEAEoA1CXo9W5A2CdodGBmAXIAQGpAoGYKAcID4U-qgQaT9BYdrT2M-QBU8MUw4FAjbqUfi1AHgxX7lY&sig=AOD64_1zwfk83qWQEelPsw69k4dMeDT_hw&adurl=http://www.123.net这是现在抓取的结果,我只想获取到 http://www.123.net 
      

  2.   

    MatchCollection mc = Regex.Matches(href2,@"<a\s?href=(?<url>.*?)>(?<content>.*?)</a>");
    string s = "";
    foreach (Match m in mc)
    {
    s +=  m.Groups["url"].Value+"\n"+m.Groups["content"].Value+"\n";
    }
    MessageBox.Show(s);
      

  3.   

    本人测试还可以用 
    第一次正则
    <h3 class="r"><a href="http://www.yidiantong.tv/" target=_blank class=l onmousedown="return rwt(this,'','','','1','AFQjCNEoZrxiKSb7QnuZh1qGMnXPhfw5XA','','0CF4QFjAA',null,event)"><em>快乐生活</em>一点通</a> 第二次是在第一次正则后的基础上再正则
    link  http://www.yidiantong.tv/
    title  <em>快乐生活</em>一点通
      

  4.   


    第二次正则能获取到 link吗?
      

  5.   


    /url?q=http://www.123.com/&sa=U&ei=0Jn6T7vdPOjdigea5-3ZBg&ved=0CBQQFjAA&usg=AFQjCNEVtQQYweBkdF-Q3T7JDd0fc5f6HA/url?q=http://www.456.com.cn/&sa=U&ei=0Jn6T7vdPOjdigea5-3ZBg&ved=0CBwQFjAB&usg=AFQjCNEGOOxcVrkqFGGhOu5JmFCyx0G9Rw
    如何用正则从 这俩个中提取出  http://www.123.com和http://www.456.com.cn
      

  6.   

    string tempStr = "/url?q=http://www.456.com.cn/&sa=U&ei=0Jn6T7vdPOjdigea5-3ZBg&ved=0CBwQFjAB&usg=AFQjCNEGOOxcVrkqFGGhOu5JmFCyx0G9Rw";
                    Regex _reg = new Regex(@"(?i)(?<=)http:[^&\s]+");
                    tempStr = _reg.Match(tempStr).Value;//http://www.456.com.cn/