读书人

求一段获取表格内容的正则表达式,该怎

发布时间: 2012-02-28 13:06:35 作者: rapoo

求一段获取表格内容的正则表达式
<table width= '500 ' bgcolor=#EEEEEE>
<tr> <td> 14:59:41 </td> <td> 商品A </td> <td> 9.310元 </td> <td> 100个 </td> </tr>
<tr> <td> 14:59:30 </td> <td> 商品B </td> <td> 9.320元 </td> <td> 50个 </td> </tr>
<tr> <td> 14:59:30 </td> <td> 商品C </td> <td> 9.310元 </td> <td> 20个 </td> </tr>
</table>

有上面一个表格我想获取他的行数据
14:59:41 商品A 9.310元 100个
14:59:30 商品B 9.320元 50个
14:59:30 商品C 9.310元 20个

以便插入数据库里
我该怎么写正则表示式
谢谢

[解决办法]
http://www.cnblogs.com/time-is-life/articles/335554.html
[解决办法]
依我之见最好把整个表格的HTML插入数据库。
[解决办法]
<td> (? <time> \d+:\d+:\d+).* <td> (? <name> .+) <td> (? <price> \d+.\d+元).+ <td> (? <amount> \d+个)

match.Group[ "time "] match.Group[ "name "] match.Group[ "price "] match.Group[ "amount "]
[解决办法]
如果格式固定,可以简单的这样写


MatchCollection mc = Regex.Matches(yourStr, @ " <td> (? <time> [^ <]*) </td> <td> (? <name> [^ <]*) </td> <td> (? <price> [^ <]*) </td> <td> (? <num> [^ <]*) </td> ", RegexOptions.IgnoreCase);
foreach(Match m in mc)
{
richTextBox2.Text += m.Groups[ "time "].Value + "\n ";
richTextBox2.Text += m.Groups[ "name "].Value + "\n ";
richTextBox2.Text += m.Groups[ "price "].Value + "\n ";
richTextBox2.Text += m.Groups[ "num "].Value + "\n ";
}

如果可能有多种格式,楼主需要说明一下,需要具体问题具体分析,单就一个实例写出来的未必通用
[解决办法]
学习
[解决办法]
用反向搜索那个,发回重写
[解决办法]
晕,我foreah的时候少了{}...
foreach (Match m in matchs){
Response.Write(m.Groups[ "time "].Value + " <span style= 'width:10px; '> </span> ");
Response.Write(m.Groups[ "name "].Value + " <span style= 'width:10px; '> </span> ");
Response.Write(m.Groups[ "money "].Value + " <span style= 'width:10px; '> </span> ");
Response.Write(m.Groups[ "count "].Value + " <span style= 'width:10px; '> </span> ");
Response.Write( " <br> ");
}

发现我的反向搜索没有什么实际意义了。。。

读书人网 >C#

热点推荐