找回密码
 加入
搜索
查看: 3152|回复: 4

[系统综合] 求一正则(已解决)

[复制链接]
发表于 2010-9-12 11:47:40 | 显示全部楼层 |阅读模式
本帖最后由 shano 于 2010-9-14 00:16 编辑

目标是抓取一网页上的代理IP  地址http://www.proxyfire.net/index.php?pageid=socks5proxylist

首先我用_IEDocReadHTML读取的源码 但是网页加密无法抓取到IP
所以改用笨方法 发送CTRL+C 然后从剪切板获取  目前遇到的问题是
复制到的代理格式如下 24.20.241.75⃧ 27977 SOCKS5  UNITED
中间那个“⃧ ” 应该怎么用正则替换成":"
目的格式为  24.20.241.75:27977

#include <ie.au3>
#include <File.au3>
#include <Array.au3>

$oIE= _IECreate("http://www.proxyfire.net/index.php?pageid=socks5proxylist")
_IELoadWait($oIE)
Sleep(2000)
_IEAction ($oIE, "selectall")  ;全选
Sleep(2000)
Send("^c") ;复制
Send("^c") ;复制  

  Dim $sR,$str,$i
$str = ClipGet()   
MsgBox(0,0,$str)  ; 显示获取到的内容  代理IP在最下面几行

$sR  = StringRegExp($str,'\d{2}(.+?)SOCKS5', 2)         ;正则匹配以数字开头 以SOCKS5结束的行   
$sR[0]  = StringRegExpReplace($sR[0],'SOCKS5', '')    ;到这里都没问题  提取到的格式为  24.20.241.75&#8423; 27977
$sR[0]  = StringRegExpReplace($sR[0],'?', ':')              ;问题就在这句了  不知道怎么匹配那个“&#8423;”
MsgBox(0,0,$sR[0])




请各位朋友帮忙看看
发表于 2010-9-12 12:20:24 | 显示全部楼层
$str="24.20.241.75? 27977 SOCKS5  UNITED"
$astr=StringRegExp($str,"([0-9.]+?)\? (\d+).*",3)
If Not @Error Then msgbox(0,'',$astr[0]&":"&$astr[1])

评分

参与人数 1金钱 +15 收起 理由
afan + 15

查看全部评分

发表于 2010-9-12 12:23:02 | 显示全部楼层
本帖最后由 afan 于 2010-9-12 12:25 编辑

$Str = '24.20.241.75⃧ 27977 SOCKS5  UNITED'
$str = StringRegExpReplace($str, '(\d+\.[\d\.]+)[^\d]+(\d+).+', '$1:$2')
Msgbox(0, '替换后', $str)
$Str = '24.20.241.75⃧ 27977 SOCKS5  UNITED'
$str = StringRegExpReplace($str, '(\d+\.[\d\.]+)[^\d]+(\d+).+', '$1:$2')
Msgbox(0, '替换后', $str)
发表于 2010-9-12 12:37:01 | 显示全部楼层
无语了,终于体会到$1的作用。。。
发表于 2010-9-17 11:17:33 | 显示全部楼层
无语了,终于体会到$1的作用。。。
kxing 发表于 2010-9-12 12:37



    什么作用
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-3 06:28 , Processed in 0.095405 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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