找回密码
 加入
搜索
查看: 18737|回复: 16

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

 火.. [复制链接]
发表于 2010-10-22 21:44:12 | 显示全部楼层 |阅读模式
本帖最后由 shano 于 2010-10-22 22:41 编辑

格式如      #SP#69611|86.16.253.76:3279|UK|E9|Widnes|2010-10-22 21:29:16  为一条
要求提取出相应国家的IP   比如提取 UK的IP 则提匹配出  86.16.253.76:3279
我的代码   $sR = StringRegExp( $text, '#SP#\d*\|(.*?)\|UK', 3)   这样会提取出其他信息  请帮忙修改一下
$text="GetOK|GetOK#SP#69611|86.16.253.76:3279|UK|E9|Widnes|2010-10-22 21:29:16#SP#73543|64.34.216.162:1080|US|NY|Vestal|2010-10-22 21:27:50#SP#73544|66.69.124.210:8168|US|TX|San Antonio|2010-10-22 21:08:52#SP#73411|68.96.210.61:52469|US|NV|LAS VEGAS|2010-10-22 21:08:50#SP#73413|67.180.214.107:33703|US|CA|SAN LORENZO|2010-10-22 21:08:49#SP#73418|76.90.179.157:6175|US|CA|PARAMOUNT|2010-10-22 21:08:42#SP#73452|71.61.41.138:26009|US|WV|WEIRTON|2010-10-22 21:08:40#SP#73454|209.127.196.42:7191|US|CA|BELL|2010-10-22 21:08:38#SP#73455|67.163.244.130:28661|US|PA|PITTSBURGH|2010-10-22 21:08:37#SP#73456|68.49.194.105:2757|US|MD|TEMPLE HILLS|2010-10-22 21:08:35#SP#73457|98.116.164.37:28863|US|NY|STATEN ISLAND|2010-10-22 21:08:34#SP#73461|76.97.192.96:1978|US|GA|Cumming|2010-10-22 21:06:58#SP#69160|92.233.22.8:8010|UK|E6|Gloucester|2010-10-22 21:06:57#SP#69404|82.71.62.48:2323|UK|H9|London|2010-10-22 21:06:55#SP#69772|86.10.223.119:15235|UK|H3|Leeds|2010-10-22 21:06:54#SP#70054|86.8.249.200:62087|UK|B8|Bromley|2010-10-22 21:06:52#SP#70344|94.197.25.246:8624|UK|H3|Leeds|2010-10-22 21:06:51#SP#70893|217.35.226.132:4441|UK|I2|Manchester|2010-10-22 21:06:49#SP#70895|90.195.65.67:56897|UK|H9|London|2010-10-22 21:06:48#SP#71323|86.135.155.220:59967|UK|无|LEEDS|2010-10-22 21:06:46#SP#73314|92.233.181.212:8915|UK|U3|Dundee|2010-10-22 21:06:45#SP#73316|84.43.106.72:8364|UK|K2|Chipping Norton|2010-10-22 21:06:43#SP#73332|88.111.149.113:8605|UK|H3|Leeds|2010-10-22 21:06:42#SP#73429|92.40.26.5:8914|UK|H9|London|2010-10-22 21:06:40#SP#73459|92.40.15.93:8908|UK|无|Greenford|2010-10-22 21:06:39#SP#73462|82.27.173.146:39215|UK|I2|Manchester|2010-10-22 21:06:37#SP#69138|24.21.97.241:7853|US|OR|Portland|2010-10-22 "

$sR = StringRegExp( $text, '#SP#\d*\|(.*?)\|UK', 3)           

_ArrayDisplay($sR, UBound($sR))

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-10-22 22:15:07 | 显示全部楼层
我的笨办法
#Include <Array.au3>


$text="GetOK|GetOK#SP#69611|86.16.253.76:3279|UK|E9|Widnes|2010-10-22 21:29:16#SP#73543|64.34.216.162:1080|US|NY|Vestal|2010-10-22 21:27:50#SP#73544|66.69.124.210:8168|US|TX|San Antonio|2010-10-22 21:08:52#SP#73411|68.96.210.61:52469|US|NV|LAS VEGAS|2010-10-22 21:08:50#SP#73413|67.180.214.107:33703|US|CA|SAN LORENZO|2010-10-22 21:08:49#SP#73418|76.90.179.157:6175|US|CA|PARAMOUNT|2010-10-22 21:08:42#SP#73452|71.61.41.138:26009|US|WV|WEIRTON|2010-10-22 21:08:40#SP#73454|209.127.196.42:7191|US|CA|BELL|2010-10-22 21:08:38#SP#73455|67.163.244.130:28661|US|PA|PITTSBURGH|2010-10-22 21:08:37#SP#73456|68.49.194.105:2757|US|MD|TEMPLE HILLS|2010-10-22 21:08:35#SP#73457|98.116.164.37:28863|US|NY|STATEN ISLAND|2010-10-22 21:08:34#SP#73461|76.97.192.96:1978|US|GA|Cumming|2010-10-22 21:06:58#SP#69160|92.233.22.8:8010|UK|E6|Gloucester|2010-10-22 21:06:57#SP#69404|82.71.62.48:2323|UK|H9|London|2010-10-22 21:06:55#SP#69772|86.10.223.119:15235|UK|H3|Leeds|2010-10-22 21:06:54#SP#70054|86.8.249.200:62087|UK|B8|Bromley|2010-10-22 21:06:52#SP#70344|94.197.25.246:8624|UK|H3|Leeds|2010-10-22 21:06:51#SP#70893|217.35.226.132:4441|UK|I2|Manchester|2010-10-22 21:06:49#SP#70895|90.195.65.67:56897|UK|H9|London|2010-10-22 21:06:48#SP#71323|86.135.155.220:59967|UK|无|LEEDS|2010-10-22 21:06:46#SP#73314|92.233.181.212:8915|UK|U3|Dundee|2010-10-22 21:06:45#SP#73316|84.43.106.72:8364|UK|K2|Chipping Norton|2010-10-22 21:06:43#SP#73332|88.111.149.113:8605|UK|H3|Leeds|2010-10-22 21:06:42#SP#73429|92.40.26.5:8914|UK|H9|London|2010-10-22 21:06:40#SP#73459|92.40.15.93:8908|UK|无|Greenford|2010-10-22 21:06:39#SP#73462|82.27.173.146:39215|UK|I2|Manchester|2010-10-22 21:06:37#SP#69138|24.21.97.241:7853|US|OR|Portland|2010-10-22 "

$sR = StringRegExp( $text, '([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\:[0-9]{1,4})', 3)           

_ArrayDisplay($sR, UBound($sR))

评分

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

查看全部评分

发表于 2010-10-22 22:20:20 | 显示全部楼层
是这样吗?
#include <Array.au3>
$sText = 'GetOK|GetOK#SP#69611|86.16.253.76:3279|UK|E9|Widnes|2010-10-22 21:29:16#SP#73543|64.34.216.162:1080|US|NY|Vestal|2010-10-22 21:27:50#SP#73544|66.69.124.210:8168|US|TX|San Antonio|2010-10-22 21:08:52#SP#73411|68.96.210.61:52469|US|NV|LAS VEGAS|2010-10-22 21:08:50#SP#73413|67.180.214.107:33703|US|CA|SAN LORENZO|2010-10-22 21:08:49#SP#73418|76.90.179.157:6175|US|CA|PARAMOUNT|2010-10-22 21:08:42#SP#73452|71.61.41.138:26009|US|WV|WEIRTON|2010-10-22 21:08:40#SP#73454|209.127.196.42:7191|US|CA|BELL|2010-10-22 21:08:38#SP#73455|67.163.244.130:28661|US|PA|PITTSBURGH|2010-10-22 21:08:37#SP#73456|68.49.194.105:2757|US|MD|TEMPLE HILLS|2010-10-22 21:08:35#SP#73457|98.116.164.37:28863|US|NY|STATEN ISLAND|2010-10-22 21:08:34#SP#73461|76.97.192.96:1978|US|GA|Cumming|2010-10-22 21:06:58#SP#69160|92.233.22.8:8010|UK|E6|Gloucester|2010-10-22 21:06:57#SP#69404|82.71.62.48:2323|UK|H9|London|2010-10-22 21:06:55#SP#69772|86.10.223.119:15235|UK|H3|Leeds|2010-10-22 21:06:54#SP#70054|86.8.249.200:62087|UK|B8|Bromley|2010-10-22 21:06:52#SP#70344|94.197.25.246:8624|UK|H3|Leeds|2010-10-22 21:06:51#SP#70893|217.35.226.132:4441|UK|I2|Manchester|2010-10-22 21:06:49#SP#70895|90.195.65.67:56897|UK|H9|London|2010-10-22 21:06:48#SP#71323|86.135.155.220:59967|UK|无|LEEDS|2010-10-22 21:06:46#SP#73314|92.233.181.212:8915|UK|U3|Dundee|2010-10-22 21:06:45#SP#73316|84.43.106.72:8364|UK|K2|Chipping Norton|2010-10-22 21:06:43#SP#73332|88.111.149.113:8605|UK|H3|Leeds|2010-10-22 21:06:42#SP#73429|92.40.26.5:8914|UK|H9|London|2010-10-22 21:06:40#SP#73459|92.40.15.93:8908|UK|无|Greenford|2010-10-22 21:06:39#SP#73462|82.27.173.146:39215|UK|I2|Manchester|2010-10-22 21:06:37#SP#69138|24.21.97.241:7853|US|OR|Portland|2010-10-22'

$aReg = StringRegExp($sText, '#SP#\d+?\|(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d+)\|UK', 3)
_ArrayDisplay($aReg, UBound($aReg))

评分

参与人数 1金钱 +20 收起 理由
shano + 20 谢谢

查看全部评分

发表于 2010-10-22 22:23:06 | 显示全部楼层

本帖子中包含更多资源

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

×
发表于 2010-10-22 22:26:29 | 显示全部楼层
回复 4# afan
前辈的正则工具已经做好了?怎么没见发布呢?
看上去真的太专业了,好期待啊!
 楼主| 发表于 2010-10-22 22:27:29 | 显示全部楼层
回复 2# lpxx


    谢谢你的回复  可能你没看清楚我的要求  你这个只是提取IP   而达不到我按国家提取的要求
 楼主| 发表于 2010-10-22 22:31:01 | 显示全部楼层
回复 3# 水木子


    谢谢   代码可用
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

这个是正则30分钟入门教程里的例子  我咋给忘了呢
发表于 2010-10-22 22:32:51 | 显示全部楼层
回复 5# 水木子


    没有完成啊,呵呵,最少还要几天,断断续续写了快个把月了…
发表于 2010-10-22 22:33:14 | 显示全部楼层
回复 7# shano

是啊!简单的匹配IP地址是可以的,不过这个会出错,至于为什么就不用我说了吧!嘿嘿!
发表于 2010-10-22 22:35:26 | 显示全部楼层
回复 8# afan
非常专业的正则工具,看起来功能非常强大哦!
看来我可以把我那个删了,等着试前辈的新作哦!
发表于 2010-10-22 22:35:29 | 显示全部楼层
楼主的意思是提取后面是UK的IP吧。这样#SP#\d*\|((\d{1,3}\.){3}\d{1,3}\:\d*)\|UK
发表于 2010-10-22 22:45:22 | 显示全部楼层
本帖最后由 afan 于 2010-10-22 23:38 编辑

回复 10# 水木子

我这个主要是为学习正则而设计的,80%以上的代码用在用户界面互动上,比较麻烦~
你的工具很精简,专一做测试用已经很不错了,各有所用吧,呵呵~

上面那个是匹配所有IP及对应位置… 如果只要其中一类会更简单,'#\d+.+?([^\|]+)\|UK'
发表于 2010-10-22 23:49:02 | 显示全部楼层
回复 12# afan
非常感谢前辈细心的讲解,还得继续想前辈学习!
发表于 2010-10-22 23:52:12 | 显示全部楼层
回复 12# afan
的确,经常都是花在界面上的时间最多。可咱又没有美术细胞,又费马达又费电,结果还是界面也不好看,精力还花得最多。
不过AFAN老大这个正则工具的确很漂亮啊。功能貌似很强大啊,期待AFAN老大的作品早日放出来。
发表于 2010-10-23 11:15:34 | 显示全部楼层
回复 14# 3mile


   进度比较慢,估计至少得等到下个星期吧,呵呵~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-6-13 12:21 , Processed in 0.094709 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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