cihren 发表于 2014-10-15 23:57:42

正则表达式的奇怪问题,晒晒~【已解决】

本帖最后由 cihren 于 2014-11-24 23:07 编辑

正则表达式提取网页中的一断数据,当字符串结果长度超过15时,自动变成“。。。”三个省略号,但在工具中测试,一切正常,奇怪。

代码和图附上,谁能解释下~Dim $aArr
For $i = 0 To UBound($aCompanyURL) - 1
        _IENavigate($oIE, $aCompanyURL[$i])
        $sHtml = _IEBodyReadHTML($oIE)
        $aName = StringRegExp($sHtml,'company-name[^>]*>([^<]+)',3)
        If Not @error        Then        _ArrayAdd($aArr, $aName)
Next
_ArrayDisplay($aArr)

veket_linux 发表于 2014-10-16 08:02:58

listview控件本身显示的问题 不影响你的实际结果

Authree 发表于 2014-10-16 10:13:33

楼上正解~~
楼主可以MsgBox(0,'',$aArr)看看就知道了。

cihren 发表于 2014-10-16 19:25:49

回复 2# veket_linux


    不是这个原因,MsgBox和ConsleWrite都试过了,结果都一样,见图。




cihren 发表于 2014-10-16 19:36:28



像这这,同样是文本,地址就显示全了,但名称不全。

cihren 发表于 2014-10-16 19:37:19



像这这,同样是文本,地址就显示全了,但名称就是不全。

haijie1223 发表于 2014-10-16 20:03:14

楼主能上全代码吗?网页地址是哪里?

Authree 发表于 2014-10-17 09:48:58

回复 6# cihren


    我记得好像应该不存放数据吧,
试试把For $i = 0 To UBound($aCompanyURL) - 1改成For $i = 1 To UBound($aCompanyURL) - 1试试呢,,

xms77 发表于 2014-10-17 12:45:08

回复 3# Authree
数组能够这样显示???

Authree 发表于 2014-10-17 15:40:33

回复 9# xms77


    我是新手,才学AU3,,,他这个是一维数组,应该可以这样表示啊?

cihren 发表于 2014-10-17 23:13:58

本帖最后由 cihren 于 2014-10-17 23:17 编辑

回复 7# haijie1223 #include<IE.au3>
#include<array.au3>

$oIE = _IECreate("http://qid1030.1688.com/page/contactinfo.htm",0,1)
Sleep(3000)
$sHtml = _IEBodyReadHTML($oIE)
$aCompanyId = StringRegExp($sHtml,'(?i)company-name[^>]*>([^<]+)',3)
If Not @error        Then
        _ArrayDisplay($aCompanyId)
        MsgBox(0,"debug",$aCompanyId)
EndIf以上是全代码,下边是程序运行结果:

cihren 发表于 2014-10-17 23:22:36

回复 7# haijie1223





这是在工具里的运行结果,完全正确。

但一到程序里就异常,晕死~

shqf 发表于 2014-10-18 09:51:20

网页源码$sHtml 用ConsoleWrite输出看一下。浏览器中有时看到的源码与_IEBodyReadHTML不一样。

user3000 发表于 2014-10-18 18:27:10

回复 12# cihren

我也曾遇到过类似怪问题, 同样是用 IE.AU3 的函数操作读取的源码.
但我没纠结到底是什么原因,果断换别方式实现了.#include <inet.au3>
Local$url = "http://qid1030.1688.com/page/contactinfo.htm"
$sHtml = _INetGetSource($url)

cihren 发表于 2014-10-18 19:21:27

回复 14# user3000


{:face (356):}

    赞一个,太有才了,又学了一招。

    用这个方法,结果果然正确。看来有时候执着是必须的,放弃也是必要的。

    如果谁解释下原因就更完美了,坐等~
页: [1] 2 3
查看完整版本: 正则表达式的奇怪问题,晒晒~【已解决】