正则提取网页中对应的值[已解决]
本帖最后由 仙乃日 于 2018-9-27 12:29 编辑$dz='<SELECT onkeypress=eapObjsMgr.getEAPObj(this).dealKeypress() onblur=eapObjsMgr.getEAPObj(this).dealInputOnblur() id=297e3bfd65e5db970166049b477d10b0 class=select onkeydown=eapObjsMgr.getEAPObj(this).getBaseObj().enterToTab();eapObjsMgr.getEAPObj(this).dealInputBackSpace() style="FONT-SIZE: 12px" name=ref_cjid label="null" JSObjName="QuickSelect" isQuickSelect="true" divID="QuickSelect_4" inputID="QuickSelectInput_4" isleaf="true"><OPTION selected value="" spellBeginStr="qxz">请选择...</OPTION><OPTION id=ref_cjid_1 value=1042 spellBeginStr="fxc">福溪村</OPTION><OPTION id=ref_cjid_2 value=1043 spellBeginStr="jzc">金枝村</OPTION><OPTION id=ref_cjid_3 value=1044 spellBeginStr="qyc">丘洋村</OPTION><OPTION id=ref_cjid_4 value=1045 spellBeginStr="ymc">洋美村</OPTION><OPTION id=ref_cjid_5 value=1046 spellBeginStr="xzc">溪洲村</OPTION><OPTION id=ref_cjid_6 value=1047 spellBeginStr="slc">松岭村</OPTION><OPTION id=ref_cjid_7 value=1048 spellBeginStr="yyc">玉叶村</OPTION><OPTION id=ref_cjid_8 value=1049 spellBeginStr="zdc">庄顶村</OPTION><OPTION id=ref_cjid_9 value=1050 spellBeginStr="ldc">李东村</OPTION><OPTION id=ref_cjid_10 value=1051 spellBeginStr="mtc">梅亭村</OPTION><OPTION id=ref_cjid_11 value=1052 spellBeginStr="ysc">英山村</OPTION><OPTION id=ref_cjid_12 value=1053 spellBeginStr="xyc">溪一村</OPTION><OPTION id=ref_cjid_13 value=1054 spellBeginStr="wsc">梧山村</OPTION><OPTION id=ref_cjid_14 value=1055 spellBeginStr="bsc">白沙村</OPTION><OPTION id=ref_cjid_15 value=1056 spellBeginStr="xmc">西美村</OPTION><OPTION id=ref_cjid_16 value=1057 spellBeginStr="xec">溪二村</OPTION><OPTION id=ref_cjid_17 value=1058 spellBeginStr="zyc">珠渊村</OPTION><OPTION id=ref_cjid_18 value=751 spellBeginStr="mljwh">美林居委会</OPTION><OPTION id=ref_cjid_19 value=752 spellBeginStr="nmjwh">南美居委会</OPTION><OPTION id=ref_cjid_20 value=753 spellBeginStr="lxc">李西村</OPTION></SELECT>'
$aArray = StringRegexp($dz,"<OPTION id=.+value=(\d{2,4}).+庄顶村",3)
MsgBox(0,0,$aArray)如果要提取网页中所有“村居委会”所对应的value正则应该怎么写呢?
看我的万能正则,{:face (293):}
<OPTION.*?value=(.*?) spellBeginStr.*?>(.*?)</OPTION>
是要这样的不. 值 村 绿色风 发表于 2018-9-23 14:21
看我的万能正则,
(.*?)
谢谢,确实可行。
### 友情提示:本脚本由 Au3.REHelper 于 2018/09/23 14:54 自动生成,不保证其正确性,请自行测试 ###
#include <Array.au3>
Local $sSource = ''
$sSource &= '<SELECT onkeypress=eapObjsMgr.getEAPObj(this).dealKeypress() onblur=eapObjsMgr.getEAPObj(this).dealInputOnblur() id=297e3bfd65e5db970166049b477d10b0 class=select onkeydown=eapObjsMgr.getEAPObj(this).getBaseObj().enterToTab();eapObjsMgr.getEAPObj(this).dealInputBackSpace() style="FONT-SIZE: 12px" name=ref_cjid label="null" JSObjName="QuickSelect" isQuickSelect="true" divID="QuickSelect_4" inputID="QuickSelectInput_4" isleaf="true"><OPTION selected value="" spellBeginStr="qxz">请选择...</OPTION><OPTION id=ref_cjid_1 value=1042 spellBeginStr="fxc">福溪村</OPTION><OPTION id=ref_cjid_2 value=1043 spellBeginStr="jzc">金枝村</OPTION><OPTION id=ref_cjid_3 value=1044 spellBeginStr="qyc">丘洋村</OPTION><OPTION id=ref_cjid_4 value=1045 spellBeginStr="ymc">洋美村</OPTION><OPTION id=ref_cjid_5 value=1046 spellBeginStr="xzc">溪洲村</OPTION><OPTION id=ref_cjid_6 value=1047 spellBeginStr="slc">松岭村</OPTION><OPTION id=ref_cjid_7 value=1048 spellBeginStr="yyc">玉叶村</OPTION><OPTION id=ref_cjid_8 value=1049 spellBeginStr="zd'
$sSource &= 'c">庄顶村</OPTION><OPTION id=ref_cjid_9 value=1050 spellBeginStr="ldc">李东村</OPTION><OPTION id=ref_cjid_10 value=1051 spellBeginStr="mtc">梅亭村</OPTION><OPTION id=ref_cjid_11 value=1052 spellBeginStr="ysc">英山村</OPTION><OPTION id=ref_cjid_12 value=1053 spellBeginStr="xyc">溪一村</OPTION><OPTION id=ref_cjid_13 value=1054 spellBeginStr="wsc">梧山村</OPTION><OPTION id=ref_cjid_14 value=1055 spellBeginStr="bsc">白沙村</OPTION><OPTION id=ref_cjid_15 value=1056 spellBeginStr="xmc">西美村</OPTION><OPTION id=ref_cjid_16 value=1057 spellBeginStr="xec">溪二村</OPTION><OPTION id=ref_cjid_17 value=1058 spellBeginStr="zyc">珠渊村</OPTION><OPTION id=ref_cjid_18 value=751 spellBeginStr="mljwh">美林居委会</OPTION><OPTION id=ref_cjid_19 value=752 spellBeginStr="nmjwh">南美居委会</OPTION><OPTION id=ref_cjid_20 value=753 spellBeginStr="lxc">李西村</OPTION></SELECT>' & @CRLF
MsgBox(0, '源字符串', $sSource)
Local $aSRE = StringRegExp($sSource, '(?m)<OPTION id=.*?value=(\d{3,4}) spellBeginStr.*?>([^\x00-\xff]{3,6})</OPTION>', 3)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($aSRE), '其中元素为: ' & $aSRE)
_ArrayDisplay($aSRE, UBound($aSRE))就是使用 Au3.REHelper输出Au3时汉字会出现乱码,要转一下编码才能正常显示。使用的系统是Win7 x64
页:
[1]