txxdhnt 发表于 2011-5-30 13:26:28

如何用正则提取网页中表格到数组

<table cellpadding="0" class="table" cellspacing="0" id="entrusts">
<thead>
<tr>
<th class="sorted order2">委托编号</th>
<th>交易所</th>
<th>买卖</th>
<th>证券代码</th>
<th>证券名称</th>
<th>委托数量</th>
<th>委托价格</th>
<th>冻结金额</th>
<th>冻结数量</th>
<th>委托时间</th>
<th>股东代码</th>
<th>状态</th>
<th>已成交</th>
<th>可撤</th></tr></thead>
<tbody>
<tr class="odd">
<td>1993</td>
<td>
      上证A股
    </td>
<td>
      卖出
    </td>
<td>600583</td>
<td>海油工程</td>
<td>
      
      
      
          100
      
      
    </td>
<td>6.240</td>
<td>0.0000</td>
<td>100</td>
<td>12:00:09</td>
<td>A422019451</td>
<td>
      委托取消
    </td>
<td>0</td>
<td>
      <!--c:if test="false"-->
      <input type="button" name="withdraw" id="withdraw" value="撤单" onclick="submitWithdraw(this,'1993','1');"/>
      <!--/c:if-->&nbsp;
    </td></tr>
<tr class="even">
<td>1990</td>
<td>
      上证A股
    </td>
<td>
      卖出
    </td>
<td>600583</td>
<td>海油工程</td>
<td>
      
      
      
          100
      
      
    </td>
<td>6.240</td>
<td>0.0000</td>
<td>100</td>
<td>09:52:51</td>
<td>A422019451</td>
<td>
      已成交
    </td>
<td>100</td>
<td>
      <!--c:if test="false"-->
      <input type="button" name="withdraw" id="withdraw" value="撤单" onclick="submitWithdraw(this,'1990','1');"/>
      <!--/c:if-->&nbsp;
    </td></tr></tbody></table>
</html>



如何用正则提取表格中的数据呀?

委托编号 交易所 买卖 证券代码 证券名称 委托数量 委托价格 冻结金额 冻结数量 委托时间 股东代码 状态 已成交 可撤
1993 上证A股卖出600583 海油工程 1006.240 0.0000 100 12:00:09 A422019451 委托取消0   
1990 上证A股卖出600583 海油工程 1006.240 0.0000 100 09:52:51 A422019451 已成交100   
共找到2条记录,显示所有记录。

onepc 发表于 2011-5-30 14:55:44


#include <Array.au3>
#include <INet.au3>
$s = FileRead(@ScriptDir &"\1.html")
;MsgBox(0,"",$s)
$ss=StringRegExp($s,'(?i)<th[^>]*>(.*?)</th>',3)

_ArrayDisplay($ss,1)
$ss=StringRegExp($s,'(?i)<td[^>]*>([^</td>]*)</td>',3)
;_ArrayDisplay($ss,1)
For $i=0 To UBound($ss)-1
        $x=StringRegExpReplace($ss[$i],'\s','')
        MsgBox(0,'',$x)
Next

txxdhnt 发表于 2011-5-30 22:50:57

谢谢 高手呀

onepc 发表于 2011-6-4 07:59:50

$ss=StringRegExp($s,'(?i)<td[^>]*>([^</td>]*)</td>',3)
昨晚看了下精通正则表达式,第三版,发现我上面写的这个[^</td>] 是错误的。
他的等价于[^/td><].....
页: [1]
查看完整版本: 如何用正则提取网页中表格到数组