shqf 发表于 2014-7-21 16:41:30

一次正则代码更加简洁吧。数组里的数据可用数组变量直接引用,为何要分四次正则,用四个变量?
唉,楼主最后敲码敲得还是这么累,看来9楼、10楼白出力了。

sex123 发表于 2014-7-22 12:50:32

一次正则代码更加简洁吧。数组里的数据可用数组变量直接引用,为何要分四次正则,用四个变量?
唉,楼主最 ...
shqf 发表于 2014-7-21 16:41 http://www.autoitx.com/images/common/back.gif


    我不是说了吗,我运行9楼和10楼的正则,没有得到结果,也不知道为什么没有运行出结果。原因不清楚。我还能怎么做?没人帮,只能我一个人一点一点打代码,现在正在学au3和正则。不信你运行一次试试。

shqf 发表于 2014-7-22 18:10:28

本帖最后由 shqf 于 2014-7-22 18:23 编辑

看了3个网页的源码,有icon For,都没有free_status与相应的href的内容。那么正则需要变一下,改成如下的,试了这3 个网页能成功匹配出journal与alt的内容。你再找一个journal、free_status、href、alt四个内容都有的网页试试。#include<array.au3>
Local $html = BinaryToString(InetRead("http://www.ncbi.nlm.nih.gov/pubmed/24755572", 1), 1)
Local $iconFor = StringRegExp($html, '(?is)journal="([^"]+).+?(?:free_status="([^"]+))*.+?(?:href="([^"]+))*.+?alt="([^"]+)', 3)
If @error = 0 Then
        _ArrayDisplay($iconFor)
Else
        MsgBox(0, "", "无匹配项目,网页源码中可能无Icon for")
EndIf

sex123 发表于 2014-7-22 20:13:41

看了3个网页的源码,有icon For,都没有free_status与相应的href的内容。那么正则需要变一下,改成如下的, ...
shqf 发表于 2014-7-22 18:10 http://www.autoitx.com/images/common/back.gif

有icon For,都没有free_status与相应的href的内容?我晕,就在icon for的上面一行的源代码,是两行代码,怎么就说没有free_status与相应的href的内容呢?
http://www.ncbi.nlm.nih.gov/pubmed/24755572
这个网页中的源代码中的这些就是有icon for,这个icon for上面就有 free_status与相应的href的内容。

sex123 发表于 2014-7-22 20:16:13

sex123 发表于 2014-7-22 20:17:27

蓝色行的上面就是free_status和href

shqf 发表于 2014-7-23 12:12:53

本帖最后由 shqf 于 2014-7-23 12:19 编辑

9、10楼给出的正则是针对你8楼给出的源字符串(journal、free_status、href、alt四个内容按如此顺序排列),如果源字符串内容变了,那就不能适用了。
你从网页浏览器中看到的源码,与程序读取的源码会有不一致的情况,所以处理网页必须先用ConsoleWrite($html)或直接写到记事本中查看源码。
程序读取24755572网页源码内容,查看journal和alt之间不存在free_status与href的内容。往前找, 才发现free_status在journal之前,href在最前,情况变了,9、10楼的正则当然不能适用了。
如果网页源码中都是这个新的顺序,那稍改一下,一次正则也行。如果几个网页源码中四个内容顺序不一致或有缺少情况不定的话,那只有分次正则了。

sex123 发表于 2014-7-23 17:27:44

9、10楼给出的正则是针对你8楼给出的源字符串(journal、free_status、href、alt四个内容按如此顺序排列), ...
shqf 发表于 2014-7-23 12:12 http://www.autoitx.com/images/common/back.gif


    这么说,是不是因为用firefox查看的源代码和用autoit读取的同一网页的源代码有区别造成正则失效的?或者说,目前也还是按我写的代码一个一个分析正则取得这四个关键词呢?
页: 1 [2]
查看完整版本: 求正则一例