[网页提取]如何提取网页信息到数组
如下,获取的网页源代码如下,请问用什么方法把信息提取到数组,以备使用?<option value="">请选择</option><option value="001">中国</option><option value="002">台港</option><option value="004">黑人</option><option value="005">白人</option> 提取到二维数组
001 中国
002 台港
。。。。 如果确实要二维的话 再重新赋一次值吧 不过用 $array[$i]和$array[$i+1]也一样很方便嘛#include <array.au3>
Local $array=StringRegExp(ClipGet(),'value="(\d+)">([^<]+)',3)
_ArrayDisplay($array) 二维数组,是不是要用两次正则,有请A版讲解。
#include<array.au3>
Dim $n1, $n2
Dim $String = '<option value="">请选择</option><option value="001">中国</option><option value="002">台港</option><option value="004">黑人</option><option value="005">白人</option>'
$n1 = StringRegExp($String, '\d+', 3)
$n2 = StringRegExp($String, '\d+">([^<]+)', 3)
If IsArray($n1) And IsArray($n2) Then
Dim $n
For $i = 0 To UBound($n1) - 1
$n[$i] = $n1[$i]
$n[$i] = $n2[$i]
Next
EndIf
_ArrayDisplay($n) 思路,先获取一维数组,然后一维数组读入二维数组 经过测试如下可以:
#include <Array.au3>
Local $Str = FileRead('test.txt')
MsgBox(0,"",$Str)
Local $aSR = StringRegExp($str, '<(?i)option value="(.*?)">(.*?)</(?i)option>', 3)
Local $zlhy
For $i = 0 To UBound($aSR)-1 Step 2
$zlhy[($i+2)/2-1] = $aSR[$i]
$zlhy[($i+2)/2-1] = $aSR[$i + 1]
Next
_ArrayDisplay($zlhy, '') 回复 4# haijie1223
正则的结果只能有一维,像3#所说,只能再赋值一个新数组。或者直接使用i+1的下标。或者如你所用的两次正则建立两个数组,可以以下标号成对使用。 正则之后再赋值。很好的思路
页:
[1]