我想从 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);
}
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);
}
解决方案 »
- 求一实例 继承,封装~~,多谢~~
- C# 如何实现 一个 控件形式的软键盘
- 急求一个计算器的原程序
- 高手请吧!!!有关记事本关闭问题
- 关于AxWebBrowser中使用X509Certificate的方法?
- 文本文档格式的数据筛选.
- 怎么利用委托在两个窗体之间传值(string)
- 请问这几个头文件在C#中怎么引用??
- TCP客户端Socket主动断开如何立即释放端口?
- winform中如何方便的对treeview进行databinding?
- 操作DataGridView时,假如说我现在有一列是FieldName,这一列我给它滴Visible设为False,为什么在后台中,我查找这个值的时候找不到呢
- iis 的使用问题
[align=center]***********************************************************
欢迎使用 CSDN 小秘书
CSDN 小秘书
***********************************************************[/align]
MatchCollection mc = Regex.Matches(yourStr,@"2010\d{4}-\d{3}|(?<=<td>)\d+(?=</td>)");
foreach (Match m in mc)
{
MessageBox.Show(m.Value);
}
真不知道你如何获取网页内容的。我怎么直接读,读不到网页源码?
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");
(?is)<td[^>]*>(?<期次>\d+-\d+)</td>.*?(?:<td[^>]*>)(?<号码>\d+)</td>
取组中的期次和号码
我照这种方法去做,执行第一步就报错:
当前线程不在单线程单元中,因此无法实例化 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");
}
我照这种方法去做,执行第一步就报错:
当前线程不在单线程单元中,因此无法实例化 ActiveX 控件。
---------------------------------------------------
很遗憾你测试错了。我这用的不是activeX控件,而你肯定没按我的操作。如果我获取不到我不会贴出来的。
如果你实在不会,你发到我邮箱我给你看看[email protected]