请问用正则表达式如何取如下table里面的各行,各列里面的数据值。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
title
</title>
</head>
<body>
<form name="form1" method="post" action="Index.aspx" id="form1"> <span id="XmlIndex1">
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="Table2" class="selPage" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<tr>
<td width="428" height="30" class="tabTitleLabel pdLeft">指数</td>
<td width="25"> </td>
<td width="220" align="center" class="tabTitleLabel">LAST</td>
<td align="center" class="tabTitleLabel">%CHG</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">美国道琼斯工业指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">12949.87</td>
<td align="center" class="tabNote bgF1">0.35</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">纳斯达克指数</td>
<td align="center"><img alt="" src="/images/downArraw.jpg"></td>
<td align="center" class="tabNote">2951.78</td>
<td align="center" class="tabNote">-0.27</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">日本日经指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">9485.09</td>
<td align="center" class="tabNote bgF1">1.08</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">香港恒生指数</td>
<td align="center"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote">21566.42</td>
<td align="center" class="tabNote">0.35</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">上证指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">2370.23</td>
<td align="center" class="tabNote bgF1">0.55</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">深证综指</td>
<td align="center"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote">9654.27</td>
<td align="center" class="tabNote">0.41</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">澳洲综合指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">4332.80</td>
<td align="center" class="tabNote bgF1">1.39</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">NZSE50</td>
<td align="center"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote">3315.57</td>
<td align="center" class="tabNote">0.81</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">伦敦金融时报</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">5905.07</td>
<td align="center" class="tabNote bgF1">0.33</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">S&P 500</td>
<td align="center"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote">1361.23</td>
<td align="center" class="tabNote">0.23</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">多伦多综合指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/downArraw.jpg"></td>
<td align="center" class="tabNote bgF1">12458.30</td>
<td align="center" class="tabNote bgF1">-0.22</td>
</tr>
</table>
</span>
</form>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head><title>
title
</title>
</head>
<body>
<form name="form1" method="post" action="Index.aspx" id="form1"> <span id="XmlIndex1">
<table width="100%" border="0" cellspacing="0" cellpadding="0" id="Table2" class="selPage" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<tr>
<td width="428" height="30" class="tabTitleLabel pdLeft">指数</td>
<td width="25"> </td>
<td width="220" align="center" class="tabTitleLabel">LAST</td>
<td align="center" class="tabTitleLabel">%CHG</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">美国道琼斯工业指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">12949.87</td>
<td align="center" class="tabNote bgF1">0.35</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">纳斯达克指数</td>
<td align="center"><img alt="" src="/images/downArraw.jpg"></td>
<td align="center" class="tabNote">2951.78</td>
<td align="center" class="tabNote">-0.27</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">日本日经指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">9485.09</td>
<td align="center" class="tabNote bgF1">1.08</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">香港恒生指数</td>
<td align="center"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote">21566.42</td>
<td align="center" class="tabNote">0.35</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">上证指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">2370.23</td>
<td align="center" class="tabNote bgF1">0.55</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">深证综指</td>
<td align="center"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote">9654.27</td>
<td align="center" class="tabNote">0.41</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">澳洲综合指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">4332.80</td>
<td align="center" class="tabNote bgF1">1.39</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">NZSE50</td>
<td align="center"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote">3315.57</td>
<td align="center" class="tabNote">0.81</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">伦敦金融时报</td>
<td align="center" class="bgF1"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote bgF1">5905.07</td>
<td align="center" class="tabNote bgF1">0.33</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft">S&P 500</td>
<td align="center"><img alt="" src="/images/upArraw.jpg"></td>
<td align="center" class="tabNote">1361.23</td>
<td align="center" class="tabNote">0.23</td>
</tr>
<tr>
<td height="27" class="tabNote pdLeft bgF1">多伦多综合指数</td>
<td align="center" class="bgF1"><img alt="" src="/images/downArraw.jpg"></td>
<td align="center" class="tabNote bgF1">12458.30</td>
<td align="center" class="tabNote bgF1">-0.22</td>
</tr>
</table>
</span>
</form>
</body>
</html>
解决方案 »
- 自动刷新页面部分内容...Ajax 吗 ?
- asp.net mvc怎样做一个计算器啊
- iframe在火狐上自适应高度
- 以何种方式提示用户好?
- 新建窗口时,跳出“Automation 服务器不能创建对象”窗口,是怎么回事?
- 谁帮把下面的asp代码改成asp.net+C#
- div中图文垂直居中显示
- 小弟初学ASP.NET以前都是做ASP的,现在突然有点摸不着头脑了,大家出出主意,有什么好的办法?
- 我快气晕了,大家帮帮我呀。
- win2000下创建打开web项目时报错:尝试创建web项目或打开位于URL"http://localhost/wapi"的web项目时,web服务器报告了一下错误。"HTTP/
- 使用JS向Repeater中的TEXT控件斌值
- 关于session问题
"<td height=\"27\" class=\"tabNote pdLeft bgF1\">澳洲综合指数</td>"+
"<td align=\"center\" class=\"bgF1\"><img alt=\"\" src=\"/images/upArraw.jpg\"></td>"+
"</tr>"+
"<tr>"+
"<td align=\"center\" class=\"tabNote\">3315.57</td>"+
"<td align=\"center\" class=\"tabNote\">0.81</td>"+
"</tr>"; MatchCollection mc = Regex.Matches(strSource, @"(?is)(?<=(<td[^>]*>))(?:(?!</?td\b).)*(?=</td>)");
for (int i = 0; i < mc.Count; i++)
{
Console.WriteLine("Group[0]:" + mc[i].Value + "\n");
}
CW result:
//Group[0]:澳洲综合指数
//Group[0]:<img alt="" src="/images/upArraw.jpg">
//Group[0]:3315.57
//Group[0]:0.81
你只写这个一段可以,但是应用在整个html数据就出不来了哦。
string s = File.ReadAllText(Server.MapPath("~/test.txt"));
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(Server.HtmlDecode(s));
HtmlNodeCollection trs = htmlDoc.DocumentNode.SelectNodes(@"//span[@id='XmlIndex1']/table/tr");
foreach (HtmlNode tr in trs)
{
foreach (HtmlNode td in tr.ChildNodes)
Response.Write(td.InnerText + " ");
Response.Write("<br/>");
}
指数 LAST %CHG
美国道琼斯工业指数 12949.87 0.35
纳斯达克指数 2951.78 -0.27
日本日经指数 9485.09 1.08
香港恒生指数 21566.42 0.35
上证指数 2370.23 0.55
深证综指 9654.27 0.41
澳洲综合指数 4332.80 1.39
NZSE50 3315.57 0.81
伦敦金融时报 5905.07 0.33
S&P 500 1361.23 0.23
多伦多综合指数 12458.30 -0.22
Regex reg = new Regex(@"(?is)<td[^>]*?>(.*?)</td>");
foreach (Match m in reg.Matches(str))
Console.WriteLine(m.Groups[1].Value);
多谢,再帮帮忙。
Regex reg = new Regex(@"(?is)<table[^>]*?id=""Table2""[^>]*?>(?:\s*<tr>(?:\s*<td[^>]*?>(.*?)</td>){4}\s*</tr>)*\s*</table>");
foreach (Capture c in reg.Match(str).Groups[1].Captures)
Console.WriteLine(c.Value);
/*
指数
LAST
%CHG
美国道琼斯工业指数
<img alt="" src="/images/upArraw.jpg">
12949.87
0.35
纳斯达克指数
<img alt="" src="/images/downArraw.jpg">
2951.78
-0.27
日本日经指数
<img alt="" src="/images/upArraw.jpg">
9485.09
1.08
香港恒生指数
<img alt="" src="/images/upArraw.jpg">
21566.42
0.35
上证指数
<img alt="" src="/images/upArraw.jpg">
2370.23
0.55
深证综指
<img alt="" src="/images/upArraw.jpg">
9654.27
0.41
澳洲综合指数
<img alt="" src="/images/upArraw.jpg">
4332.80
1.39
NZSE50
<img alt="" src="/images/upArraw.jpg">
3315.57
0.81
伦敦金融时报
<img alt="" src="/images/upArraw.jpg">
5905.07
0.33
S&P 500
<img alt="" src="/images/upArraw.jpg">
1361.23
0.23
多伦多综合指数
<img alt="" src="/images/downArraw.jpg">
12458.30
-0.22
*/
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(Server.HtmlDecode(s));
HtmlNodeCollection trs = htmlDoc.DocumentNode.SelectNodes(@"//span[@id='XmlIndex1']/table/tr");
for (int i = 0; i < trs.Count; i++)
{
HtmlNodeCollection tds = trs[i].SelectNodes(@"td");
for (int j = 0; j < tds.Count; j++)
{
if (i > 0 && j == 1)
Response.Write(trs[i].SelectSingleNode("//img").Attributes["src"].Value + " ");
else
Response.Write(tds[j].InnerText + " ");
}
Response.Write("<br/>");
指数 LAST %CHG
美国道琼斯工业指数 /images/upArraw.jpg 12949.87 0.35
纳斯达克指数 /images/upArraw.jpg 2951.78 -0.27
日本日经指数 /images/upArraw.jpg 9485.09 1.08
香港恒生指数 /images/upArraw.jpg 21566.42 0.35
上证指数 /images/upArraw.jpg 2370.23 0.55
深证综指 /images/upArraw.jpg 9654.27 0.41
澳洲综合指数 /images/upArraw.jpg 4332.80 1.39
NZSE50 /images/upArraw.jpg 3315.57 0.81
伦敦金融时报 /images/upArraw.jpg 5905.07 0.33
S&P 500 /images/upArraw.jpg 1361.23 0.23
多伦多综合指数 /images/upArraw.jpg 12458.30 -0.22