本帖最后由 半翅鸟 于 2012-3-1 17:13 编辑
一个很菜的问题,例如:#include <Array.au3>
#include <INet.au3>
#include<Array.au3>
$s_URL = 'http://www.ysxyfs.com/goods.php?id=2236'
$sText = _INetGetSource($s_URL)
Local $huohao = StringRegExp($sText, '货号:(.+?)<br', 3)
Local $colors = StringRegExp($sText, '(?s)颜色:.+?" />\s+(.+?)\s+</', 3)
Local $size = StringRegExp($sText, '/>\s*(S|M|L|XL|XXL|均码)\s*\[(\d*)\]', 3)
FileWriteLine (@DesktopDir&"\test.txt",$huohao[0]&$colors[0]&$size[0])
If Not @Error Then MsgBox(0, '商品货号 ',$huohao[0]&colors[0]&$size[0])
问题一:如果其中一条正则表示式匹配不上,例如:货号本身不存在,那么这个程序算错误,还是会继续执行?我自己的尝试是如果匹配不到,程序按下F5没有反映,应该是错误了。
问题二:$size这个变量数组根据帮助文件看不是一个高效的数组,因为混合使用多种数据类型,不过很方便,就是一个不知道如何将匹配的内容输出来!
因为匹配出来的内容可能是2个,4个,8个等,例如:M10 L10 XL10,或S10或均码10,那我如何让他们出来呢?
利用$size[0]&$size[1]的时候,一定是结果是2个的才弹出Msgbox,如果用$size[0]&$size[1]$size[2]&$size[3],而网页内容只有M10,就会出现错误。
求解,在线期盼,谢谢指教。
经过帖子搜索,找到了第一个问题的答案,如果正则表达式匹配不到,命令继续执行 |