大家好,我那个帐号密码无法登录了,换了新号过来求助一下
我对百度搜索出来的结果用正则表达式可以提出来,但是谷歌的一直没有实现,哪位能帮忙修改一下啊,下面是对百度结果进行的提取。万分感谢,下班回家,明儿回来结贴。百度结果能优化一下的话,同样感激!!!List<Keyword> keywords = new List<Keyword>();           
            Regex regtable = new Regex(@"(?is)<table[^>]*?id=(['""]?)(\d{2}|\d{1})\1[^>]*>(?><table[^>]*>(?<o>)|</table>(?<-o>)|(?:(?!</?table\b).)*)*(?(o)(?!))</table>", RegexOptions.IgnoreCase);
            Regex rega = new Regex(@"(?is)<a\b[^>]*?href=([""]?)(?<link>[^""\s>]+)\1[^>]*>(?<title>.*?)</a>", RegexOptions.IgnoreCase);
            //MatchCollection mc = rega.Matches(html);
            MatchCollection mctable = regtable.Matches(html);
            foreach (Match mtable in mctable)
            {
                if (mtable.Success)
                {
                    Match ma = rega.Match(mtable.Value);
                    if (ma.Success)
                    {
                        Keyword keyw = new Keyword();
                        keyw.Link = ma.Groups["link"].Value;
                        keyw.Title = ma.Groups["title"].Value;
                        SqlHelp.SqlCmd.ResultInsert(KeyID,keyw.Title, keyw.Link );
                        keywords.Add(keyw);
                    }
                }
            }

解决方案 »

  1.   

    Regex regtable = new Regex(@"(?is)<table[^>]*?id=(['""]?)(\d{2}|\d{1})\1[^>]*>(?><table[^>]*>(?<o>)|</table>(?<-o>)|(?:(?!</?table\b).)*)*(?(o)(?!))</table>", RegexOptions.IgnoreCase);
    =======
    优化:
    Regex regtable = new Regex(@"(?is)<table[^>]*?id=(['""]?)(\d{1,2})\1[^>]*?>(?><table[^>]*>(?<o>)|</table>(?<-o>)|(?:(?!</?table\b).)*)*(?(o)(?!))</table>", RegexOptions.IgnoreCase);其他地方没看懂楼主在说神马
      

  2.   

    您好,我的意思是从百度和谷歌搜索结果提取出标题、网址信息。
    假设搜索“CSDN”,那么将这两个搜索引擎搜出来的结果通过正则表达式提取出来。