以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何从html文件中获取有用的数据?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=40940)

--  作者:y2287958
--  发布时间:2013/10/7 9:27:00
--  如何从html文件中获取有用的数据?
以下是一段html内容摘录:
            </tr>
              <tr>
              <td align="center" rowspan="2" class="td_value">
期数
</td>
<td align="center" class="td_value">
计划
</td>
               <td align="center" class="td_value">
0<input type="hidden" name="tbReportSpec13model.r01c01" value="0">
</td>
               <td align="center" class="td_value">
0<input type="hidden" name="tbReportSpec13model.r01c02" value="0">
</td>
               <td align="center" class="td_value">
5<input type="hidden" name="tbReportSpec13model.r01c03" value="5">
</td>
               <td align="center" class="td_value">
1<input type="hidden" name="tbReportSpec13model.r01c04" value="1">
</td>
               <td align="center" class="td_value">
1<input type="hidden" name="tbReportSpec13model.r01c05" value="1">
</td>
               <td align="center" class="td_value">
0<input type="hidden" name="tbReportSpec13model.r01c06" value="0">
</td>
               <td align="center" class="td_value">
2<input type="hidden" name="tbReportSpec13model.r01c07" value="2">
</td>
<td align="center" class="td_value">
2<input type="hidden" name="tbReportSpec13model.r01c08" value="2">
</td>
               <td align="center" class="td_value">
1<input type="hidden" name="tbReportSpec13model.r01c09" value="1">
</td>
<td align="center" class="td_value">
0<input type="hidden" name="tbReportSpec13model.r01c10" value="0">
</td>
               <td align="center" class="td_value">
0<input type="hidden" name="tbReportSpec13model.r01c11" value="0">
</td>
              </tr>   
              <tr>

我要获取的数据是:期数,计划,0,0,5,1,1,0,2,2,1,0,0
我现在用的是文本替换的笨方法,很累。有没有其他方法更便捷一下,比如说正则?
谢谢!

--  作者:有点甜
--  发布时间:2013/10/7 10:43:00
--  

 呃,还是不太熟练,弄了很久。

 

Dim data As String = FileSys.ReadAllText("d:\\test.htm").Replace(vbcrlf, "").Replace(chr(9), "")

Dim reg As new System.Text.RegularExpressions.Regex("(?><td.*?>).*?</td>")
Dim reg2 As new System.Text.RegularExpressions.Regex("(?<=<td.*?>).*?(?=<)")
Dim mc As object = reg.Matches(data)
For i As Integer = 0 To mc.count - 1
    Dim m As object = reg2.matches(mc(i).value)
    output.Show(m(0).value)
Next


--  作者:y2287958
--  发布时间:2013/10/7 14:51:00
--  
谢谢,谢谢!
要的就是这个效果,verry good!