一个关于正则表达式的问题,特来请教各位大哥

liveths 2009-12-23 08:08:32
近日需要做一个项目,有以下一个技术问题解决不到,特来请教各位大哥姐姐指点一下~
winform程序,使用正则表达式将页面:http://datainfo.stock.hexun.com/pzzz/dpqd.htm 源文件中的
"沪市大盘驱动股"股票数据提取出来并在程序界面上用文本的形式显示出来
显示文本格式如下:
中国人寿 601628 1.06 0.03% 32.00 0.82% 20070 62710
中国平安 601318 0.51 0.02% 57.56 0.84% 61650 107134
这里的思路是首先用webclient获取页面html所有源代码,然后才用正则表达式去匹配某个地方,然后在某个地放下查找<tr></tr>行中的每一个<td></td>开始的数据,然后用replace去掉所有没用的html代码。
但是思路是有了,可惜在下对正则表达式是在不是很有研究,特来求教各位高手
...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
数据之巅 2009-12-23
  • 打赏
  • 举报
回复
高人。。。。。
ivanlai2 2009-12-23
  • 打赏
  • 举报
回复
很多牛人!!
jianshao810 2009-12-23
  • 打赏
  • 举报
回复
果然是牛人
liveths 2009-12-23
  • 打赏
  • 举报
回复
神一样的楼上那位大哥,可以留下你的QQ号码吗?本人420822072.请收我做小弟跟你混吧。
-过客- 2009-12-23
  • 打赏
  • 举报
回复

private string GetHtmlCode(string url, Encoding encoding)
{
System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022)";
System.Net.WebResponse response = request.GetResponse();
System.IO.Stream resStream = response.GetResponseStream();
System.IO.StreamReader sr = new System.IO.StreamReader(resStream, encoding);
string html = (sr.ReadToEnd());
resStream.Close();
sr.Close();
return html;
}
//调用
string html = GetHtmlCode("http://datainfo.stock.hexun.com/pzzz/dpqd.htm", Encoding.GetEncoding("gb2312"));
Regex regTable = new Regex(@"(?is)<div class=""truck""><strong>沪市大盘驱动股</strong>(?:(?!<table\b).)*(<table[^>]*>(?:(?!</table>).)*</table>)");
Regex regData = new Regex(@"(?is)<tr><td height=""25"" align=""center"">(?:(?!</?tr\b).)*</tr>");
Regex regTag = new Regex(@"<[^>]*>");
Match mTable = regTable.Match(html);
if (mTable.Success)
{
MatchCollection mc = regData.Matches(mTable.Groups[1].Value);
foreach (Match m in mc)
{
richTextBox2.Text += regTag.Replace(m.Value, " ").Trim() + "\n";
}
}
/*--------输出---------
中国石油 601857 -7.36 -0.24% 13.07 -2.10% 45800 347584
中国神华 601088 -3.43 -0.11% 31.82 -3.63% 85533 265028
工商银行 601398 -3.36 -0.11% 5.07 -1.36% 46628 917508
建设银行 601939 -3.02 -0.10% 5.75 -1.54% 36521 630958
中国人寿 601628 -2.03 -0.07% 29.10 -1.69% 35830 122010
中国平安 601318 -1.66 -0.05% 50.91 -2.99% 185905 359777
交通银行 601328 -1.41 -0.05% 8.34 -2.34% 39182 465061
招商银行 600036 -1.37 -0.05% 16.32 -2.97% 133899 815808
中国铝业 601600 -1.19 -0.04% 13.49 -4.33% 47293 345484
中国银行 601988 -1.09 -0.04% 4.10 -0.73% 27380 665805
中煤能源 601898 -1.09 -0.04% 12.55 -4.34% 39983 311244
中信证券 600030 -0.93 -0.03% 28.20 -3.36% 184530 643723
兖州煤业 600188 -0.93 -0.03% 21.67 -5.74% 21544 97366
紫金矿业 601899 -0.88 -0.03% 9.23 -4.35% 96656 1035695
大秦铁路 601006 -0.84 -0.03% 9.79 -4.39% 51909 522003
中国远洋 601919 -0.82 -0.03% 13.11 -4.10% 44472 334368
浦发银行 600000 -0.81 -0.03% 20.01 -3.10% 134527 663350
兴业银行 601166 -0.81 -0.03% 37.19 -2.95% 67152 178639
海通证券 600837 -0.67 -0.02% 17.31 -3.19% 257785 1458370
中国建筑 601668 -0.65 -0.02% 4.56 -3.18% 113851 2465876
*/
liveths 2009-12-23
  • 打赏
  • 举报
回复
http://datainfo.stock.hexun.com/pzzz/dpqd.htm
sito_hongta 2009-12-23
  • 打赏
  • 举报
回复
你最少也要給出一段你想要截取的Html文本吧?

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧