免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2762 | 回复: 3
打印 上一主题 下一主题

[文本处理] 正则表达式匹配IP,无法匹配到最后一个数字 [复制链接]

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
1 [报告]
发表于 2018-08-03 10:01 |显示全部楼层
本帖最后由 wh7211 于 2018-08-03 10:28 编辑

回复 1# xiongyefeng


匹配IP地址最后1位的是下面的正则表达式:
  1. (\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])
复制代码

如果200在IP地址的最后1位,200匹配『 \d{1,2}』,表达式为真,不会再去匹配后面的『 2[0-4]\d』,因此只会匹配20和0,不会匹配200

匹配IP地址前3位的是下面的正则表达式:
  1. ((\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5]))\.
复制代码

如果200在IP地址的前3位,200和『 \d{1,2}\.』不匹配,表达式为假,会依次匹配后面的表达式,直到匹配『 2[0-4]\d\.』,表达式为真,因此会匹配200

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
2 [报告]
发表于 2018-08-03 13:45 |显示全部楼层
回复 4# xiongyefeng


  1. cat 1
  2. Ping hog.forta.com [12.159.46.200]
  3. with 32 bytes of data:

  4. awk '{a="\\[((([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5]))]";if(match($0,a,b)){print b[1]}}' 1
  5. 12.159.46.200
复制代码

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
3 [报告]
发表于 2018-08-06 01:17 |显示全部楼层
回复 10# xiongyefeng


如果源文件ip地址均为合法ip,可以这样:
  1. cat 1
  2. Ping hog.forta.com [12.159.46.2]
  3. Ping hog.forta.com [12.159.46.20]
  4. Ping hog.forta.com [12.159.46.199]
  5. Ping hog.forta.com [12.159.46.200]
  6. Ping hog.forta.com [12.159.46.240]
  7. Ping hog.forta.com [12.159.46.250]
  8. with 32 bytes of data:

  9. grep -Po '(([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(1[0-9]{2}|2[0-4][0-9]|25[0-5]|[0-9]{1,2})' 1
  10. 12.159.46.2
  11. 12.159.46.20
  12. 12.159.46.199
  13. 12.159.46.200
  14. 12.159.46.240
  15. 12.159.46.250
复制代码


如果源文件ip地址中可能会出现299,可以这样:
  1. cat 1
  2. Ping hog.forta.com [12.159.46.2]
  3. Ping hog.forta.com [12.159.46.20]
  4. Ping hog.forta.com [12.159.46.199]
  5. Ping hog.forta.com [12.159.46.200]
  6. Ping hog.forta.com [12.159.46.240]
  7. Ping hog.forta.com [12.159.46.250]
  8. Ping hog.forta.com [12.159.46.299]
  9. with 32 bytes of data:

  10. grep -Po '(([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]{1,2}|1[0-9]{2}|2[0-4][0-9]|25[0-5])(?=])' 1
  11. 12.159.46.2
  12. 12.159.46.20
  13. 12.159.46.199
  14. 12.159.46.200
  15. 12.159.46.240
  16. 12.159.46.250
复制代码

论坛徽章:
25
程序设计版块每日发帖之星
日期:2016-05-03 06:20:0015-16赛季CBA联赛之八一
日期:2018-07-05 10:34:09黑曼巴
日期:2018-07-06 15:19:5015-16赛季CBA联赛之佛山
日期:2018-08-03 13:19:3315-16赛季CBA联赛之山西
日期:2018-08-07 19:46:2315-16赛季CBA联赛之广夏
日期:2018-08-08 19:31:5015-16赛季CBA联赛之青岛
日期:2018-11-26 15:21:5015-16赛季CBA联赛之上海
日期:2018-12-11 09:45:3219周年集字徽章-年
日期:2020-04-18 23:54:5215-16赛季CBA联赛之深圳
日期:2020-04-19 21:40:19黑曼巴
日期:2022-04-03 17:55:1315-16赛季CBA联赛之八一
日期:2018-07-03 16:56:46
4 [报告]
发表于 2018-08-06 18:33 |显示全部楼层
回复 22# xiongyefeng

是的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP