找回密码
 加入
搜索
楼主: sex123

[系统综合] 求正则一例

 火.. [复制链接]
发表于 2014-7-21 16:41:30 | 显示全部楼层
一次正则代码更加简洁吧。数组里的数据可用数组变量直接引用,为何要分四次正则,用四个变量?
唉,楼主最后敲码敲得还是这么累,看来9楼、10楼白出力了。
 楼主| 发表于 2014-7-22 12:50:32 | 显示全部楼层
一次正则代码更加简洁吧。数组里的数据可用数组变量直接引用,为何要分四次正则,用四个变量?
唉,楼主最 ...
shqf 发表于 2014-7-21 16:41



    我不是说了吗,我运行9楼和10楼的正则,没有得到结果,也不知道为什么没有运行出结果。原因不清楚。我还能怎么做?没人帮,只能我一个人一点一点打代码,现在正在学au3和正则。不信你运行一次试试。
发表于 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
 楼主| 发表于 2014-7-22 20:13:41 | 显示全部楼层
看了3个网页的源码,有icon For,都没有free_status与相应的href的内容。那么正则需要变一下,改成如下的, ...
shqf 发表于 2014-7-22 18:10


有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的内容。
 楼主| 发表于 2014-7-22 20:16:13 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2014-7-22 20:17:27 | 显示全部楼层
蓝色行的上面就是free_status和href
发表于 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楼的正则当然不能适用了。
如果网页源码中都是这个新的顺序,那稍改一下,一次正则也行。如果几个网页源码中四个内容顺序不一致或有缺少情况不定的话,那只有分次正则了。
 楼主| 发表于 2014-7-23 17:27:44 | 显示全部楼层
9、10楼给出的正则是针对你8楼给出的源字符串(journal、free_status、href、alt四个内容按如此顺序排列), ...
shqf 发表于 2014-7-23 12:12



    这么说,是不是因为用firefox查看的源代码和用autoit读取的同一网页的源代码有区别造成正则失效的?或者说,目前也还是按我写的代码一个一个分析正则取得这四个关键词呢?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-9 07:06 , Processed in 0.067323 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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