sex123 发表于 2014-4-27 02:04:40

帮写一个正则

本帖最后由 sex123 于 2014-4-27 02:06 编辑

http://www.ncbi.nlm.nih.gov/pubmed/24755572
http://www.ncbi.nlm.nih.gov/pubmed/24406157
http://www.ncbi.nlm.nih.gov/pubmed/24753396
这些网址右上角均有一个图标,网页源代码都有icon for的字样,想把这些图标所对应的url提出来。最好是根据icon for写正则表达式,以前也求过一次,但是正则失效了。

haijie1223 发表于 2014-4-27 08:30:37

好久没来论坛了,懒得写~好懒

水木子 发表于 2014-4-27 09:29:57

不知道是不是你要的结果 (?<=icon" href="//)[^"]+

sex123 发表于 2014-4-27 10:18:38

不知道是不是你要的结果
水木子 发表于 2014-4-27 09:29 http://www.autoitx.com/images/common/back.gif
运行没反应,另外,是icon for 不是iconLocal $html=BinaryToString(InetRead("http://www.ncbi.nlm.nih.gov/pubmed/24755572"))
Local $strrg=StringRegExp($html,'(=icon href=)[^]+', 3)
If Not @error Then MsgBox(0, '', $strrg)

lixiaolong 发表于 2014-4-27 10:27:57

回复 1# sex123 #include <IE.au3>

Local $oIE


$oIE = "http://www.ncbi.nlm.nih.gov/pubmed/24755572"
$oIE = "http://www.ncbi.nlm.nih.gov/pubmed/24406157"
$oIE = "http://www.ncbi.nlm.nih.gov/pubmed/24753396"

If Not FileExists(@ScriptDir & "\_geticonfor") Then _
                DirCreate(@ScriptDir & "\_geticonfor")

For $i = 0 To 2
        _geticonfor($oIE[$i])
Next

ShellExecute(@ScriptDir & "\_geticonfor")

Func _geticonfor($url)
        Local $obj = _IECreate($url, 0, 0)
        Local $Str = _IEBodyReadHTML($obj)
        _IEQuit($obj)

        If Not @error Then
                Local $Test = StringRegExp($Str, '(?si)alt="icon for.*?src="([^"]+)"', 1)

;~                 MsgBox(0, $i, "http:" & $Test)
                InetGet("http:" & $Test, @ScriptDir & "\_geticonfor\" & StringRegExpReplace($Test, ".*?http:--(.+)", "\1"))
        EndIf
EndFunc   ;==>_geticonfor


sex123 发表于 2014-4-27 10:37:59

回复sex123
lixiaolong 发表于 2014-4-27 10:27 http://www.autoitx.com/images/common/back.gif


    晕,我不是要图片,我要的是图片所代表的链接地址,就是说点击图片所转到的http地址链接。

lixiaolong 发表于 2014-4-27 10:54:47

本帖最后由 lixiaolong 于 2014-4-27 11:06 编辑

回复 6# sex123

{:face (394):}
试试
StringRegExp($Str, '(?i)<a href="([^"]+)".*?(?=alt="icon for)', 1)

水木子 发表于 2014-4-27 11:13:57

本帖最后由 水木子 于 2014-4-27 11:15 编辑

回复 6# sex123

提问就有问题,根本没说出自己要的结果,让我们猜啊!哎! 真心难!

举例说明自己想要得到的结果。

sex123 发表于 2014-4-27 11:42:47

回复sex123

提问就有问题,根本没说出自己要的结果,让我们猜啊!哎! 真心难!

举例说明自己想要 ...
水木子 发表于 2014-4-27 11:13 http://www.autoitx.com/images/common/back.gif


    不好意思呀,我说的不是太清楚,我举列子吧。
比如:
http://www.ncbi.nlm.nih.gov/pubmed/24755572
这个网页右上角有一个图标
左键点击这个图标,选复制链接地址后,得到的
dx.plos.org/10.1371/journal.pone.0094898
就是我想要的,当然最好是前有加上一个http://就最好了。

水木子 发表于 2014-4-27 12:30:41

回复 9# sex123
(?<=icons"><a href=")[^"]+

sex123 发表于 2014-4-27 13:47:13

回复sex123
水木子 发表于 2014-4-27 12:30 http://www.autoitx.com/images/common/back.gif


    按你写的,没反应。Local $html=BinaryToString(InetRead("http://www.ncbi.nlm.nih.gov/pubmed/24755572"),1)
Local $strrg=StringRegExp($html,'(?<=icons"><a href=")[^"]+', 3)
If Not @error Then MsgBox(0, '', $strrg)

水木子 发表于 2014-4-27 15:30:48

你这个需要转码吗?貌似不需要吧!

sex123 发表于 2014-4-27 15:45:08

你这个需要转码吗?貌似不需要吧!
水木子 发表于 2014-4-27 15:30 http://www.autoitx.com/images/common/back.gif


    不知道需不需要转码,什么情况下转码,什么情况下不转吗呢,反正现在没有弹出条。

sex123 发表于 2014-4-27 16:10:02

你这个需要转码吗?貌似不需要吧!
水木子 发表于 2014-4-27 15:30 http://www.autoitx.com/images/common/back.gif


不转码,也没反应。Local $html=inetRead("http://www.ncbi.nlm.nih.gov/pubmed/24755572",1)
Local $strrg=StringRegExp($html,'(?<=icons"><a href=")[^"]+', 3)
If Not @error Then MsgBox(0, '', $strrg)

水木子 发表于 2014-4-27 16:34:10

本帖最后由 水木子 于 2014-4-27 16:35 编辑

有点迷茫,不知道是不是你要的。
Local $html = BinaryToString(InetRead("http://www.ncbi.nlm.nih.gov/pubmed/24755572"), 1)
Local $strrg=StringRegExp($html,'icon-triangle.+?href="([^"]+)', 3)
If Not @error Then MsgBox(0, 0, $strrg)
页: [1] 2
查看完整版本: 帮写一个正则