我想从 http://video.shishicai.cn/Assist/BonusVideo.aspx?lt=4 这个网页的html源代码中, 获得这样的数据: 
20100427-023 32555 
20100427-022 52248 
20100427-021 43449 
20100427-020 13651 
20100427-019 41356 
20100427-018 97588 
20100427-017 26388 
20100427-016 23793 
20100427-015 92419 
20100427-014 23560 即:右边的“期号”和“开奖号码”,其他内容不要。 请问:怎样用正则表达式来实现?谢谢我用下面这段代码来实现,得到的是空。foreach (Match match in Regex.Matches(str, "<tr class=\"t_tr[12]\">\\s*<td>\\d+</td>\\s*<td>(\\d+)</td>\\s*<td>(\\d+)</td>", RegexOptions.Singleline))
{
    Console.WriteLine("{0}, {1}", match.Groups[1].Value, match.Groups[2].Value);
}

解决方案 »

  1.   

    看看这个东东,也许对你有所帮助,,,,,,,
    [align=center]*********************************************************** 
                      欢迎使用 CSDN 小秘书
                  CSDN 小秘书
    ***********************************************************[/align]
      

  2.   

    你可以说试试例如firefox的firebug之类的插件,选中页面一段能自动选择相应代码
      

  3.   


    MatchCollection mc = Regex.Matches(yourStr,@"2010\d{4}-\d{3}|(?<=<td>)\d+(?=</td>)");
    foreach (Match m in mc)
    {
        MessageBox.Show(m.Value);
    }
    真不知道你如何获取网页内容的。我怎么直接读,读不到网页源码?
      

  4.   

    一个曲线救国方法
    WebBrowser wb = new WebBrowser();            
    wb.DocumentCompleted += delegate(object s1, WebBrowserDocumentCompletedEventArgs e1)
    {
        StreamReader strm = new StreamReader(wb.DocumentStream,
            Encoding.GetEncoding(wb.Document.Encoding));
        string yourStr = strm.ReadToEnd();
        strm.Close();
        MatchCollection mc = Regex.Matches(yourStr, @"2010\d{4}-\d{3}|(?<=<td>)\d+(?=</td>)");
        foreach (Match m in mc)
        {
            MessageBox.Show(m.Value);
        }
    };
    wb.Navigate("http://video.shishicai.cn/Assist/BonusVideo.aspx?lt=4");
      

  5.   


    (?is)<td[^>]*>(?<期次>\d+-\d+)</td>.*?(?:<td[^>]*>)(?<号码>\d+)</td>
    取组中的期次和号码
      

  6.   

    你好,wuyazhe
    我照这种方法去做,执行第一步就报错:
    当前线程不在单线程单元中,因此无法实例化 ActiveX 控件。源码如下:    protected void btSource_Click(object sender, EventArgs e)
        {
            WebBrowser wb = new WebBrowser();
            wb.DocumentCompleted += delegate(object s1, WebBrowserDocumentCompletedEventArgs e1)
            {
                StreamReader strm = new StreamReader(wb.DocumentStream,Encoding.GetEncoding(wb.Document.Encoding));
                string yourStr = strm.ReadToEnd();
                strm.Close();
                MatchCollection mc = Regex.Matches(yourStr, @"2010\d{4}-\d{3}|(?<=<td>)\d+(?=</td>)");
                foreach (Match m in mc)
                {
                    MessageBox.Show(m.Value);
                }
            };
            wb.Navigate("http://video.shishicai.cn/Assist/BonusVideo.aspx?lt=4");
        }
      

  7.   

    加个AspCompat="true",不会报错了。但是得不到数据,DocumentStream 为NULL。再次请教!
      

  8.   

    你好,wuyazhe
    我照这种方法去做,执行第一步就报错:
    当前线程不在单线程单元中,因此无法实例化 ActiveX 控件。
    ---------------------------------------------------
    很遗憾你测试错了。我这用的不是activeX控件,而你肯定没按我的操作。如果我获取不到我不会贴出来的。
    如果你实在不会,你发到我邮箱我给你看看[email protected]
      

  9.   

    按照xml解析方法,js可以用string拆分方法。