找回密码
 加入
搜索
查看: 1268|回复: 2

[AU3基础] 正则提取网页中对应的值[已解决]

[复制链接]
发表于 2018-9-23 13:03:43 | 显示全部楼层 |阅读模式
本帖最后由 仙乃日 于 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[0])
如果要提取网页中所有“村居委会”所对应的value正则应该怎么写呢?
发表于 2018-9-23 14:21:02 | 显示全部楼层
看我的万能正则,

<OPTION.*?value=(.*?) spellBeginStr.*?>(.*?)</OPTION>


是要这样的不.              值     村
 楼主| 发表于 2018-9-23 15:04:01 | 显示全部楼层
绿色风 发表于 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), '其中[0]元素为: ' & $aSRE[0])
_ArrayDisplay($aSRE, UBound($aSRE))
就是使用 Au3.REHelper输出Au3时汉字会出现乱码,要转一下编码才能正常显示。使用的系统是Win7 x64
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-24 00:22 , Processed in 0.082806 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表