一、实验环境

1.Windows7x64_SP1

2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装)

3.pyinstaller3.0

二、实验目的

从text文本中获取字符串,筛选合法IP地址

2.1 文本内容如下

请输入合法IP地址,非法IP地址和其他字符将被过滤!

增、删、改IP地址后,请保存、关闭记事本!

192.168.8.84

192.168.8.85

192.168.8.86

0.0.0.1

256.1.1.1

192.256.256.256

192.255.255.255

aa.bb.cc.dd

2.2 编写函数读取文本文件,筛选合法IP地址

def get_ip_list(self):

try:

file = open(self.smart_ip_list_file, 'r')

str = file.readlines()

str_del_enter = [x.strip('\n') for x in str] #去除\n

comp = re.compile(r'^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}')

str_legal_ip = [x for x in str_del_enter if comp.match(x)] #筛选合法IP地址

file.close()

return str_legal_ip

except:

self.ui.textEdit.setText('读取"%s"报错' %(self.smart_ip_list_file))

return []

2.3 代码说明

1.从文本文件中读取所有行,除首行外均以\n结束,如下代码用于去除\n

str_del_enter = [x.strip('\n') for x in str]

2.IP地址的长度为32位(共有2^32个IP地址),分为4段,每段8位,用十进制数字表示,每段数字范围为0~255,段与段之间用句点隔开

根据规则:每段相同,范围都在 0 ~ 255

0~255 对应的正则表达式为 (2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2}

2(5[0-5]|[0-4]\d) 匹配:200 ~ 255

[0-1]?\d{1,2} 匹配:0 ~ 199

0 到 255 的式子已经写出来了,那么一共四段再加上中间的点就很容易了

后边“点”和“数字”重复三次就可以了,(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}

全部合起来,((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}

通过如上正则表达式匹配字符串,存在如下问题

256.1.1.1 -> 匹配结果56.1.1.1

解决方式,如上表达式前面添加^,最终调用compile函数,参数方式如下

comp = re.compile(r'^((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}')

python正则匹配ip地址_python 正则表达式匹配IP地址相关推荐

  1. python正则判断纯数字_Python 正则表达式匹配数字及字符串中的纯数字,

    Python 正则表达式匹配数字及字符串中的纯数字, Python 正则表达式匹配数字 电话号码:\d{3}-\d{8}|\d{4}-\d{7} QQ号:[1-9][0-9]{4,} 中国邮政编码:[ ...

  2. python re正则提取ip地址_python 正则表达式匹配IP地址

    一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...

  3. python 正则表达式匹配的位置_python正则表达式匹配 模式匹配

    Python正则式的基本用法 初学Python,对Python的文字处理能力有很深的印象,除了str对象自带的一些方法外,就是正则表达式这个强大的模块了.但是对于初学者来说,要用好这个功能还是有点难度 ...

  4. python正则匹配ip地址_Python正则表达式匹配和提取IP地址

    Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...

  5. python re正则提取ip地址_Python正则表达式匹配和提取IP地址

    No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}\.){3}[0-9 ...

  6. python正则匹配ip地址_Python正则表达式匹配ip地址实例

    Python正则表达式匹配ip地址实例 更新时间:2014年10月09日 11:22:51 投稿:shichen2014 这篇文章主要介绍了Python正则表达式匹配ip地址实例,通过简单的实例讲述了 ...

  7. python正则匹配任意字符_Python 正则表达式 匹配任意字符的写法

    .(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符>>> >>> r=re.compile(r'.*') >>> ...

  8. python正则匹配任意字符_Python 正则表达式 匹配任意字符

    .(句点)匹配除了换行之外的所有一个字符, .*(点-星)匹配除了换行外的所有字符 >>> >>> r=re.compile(r'.*') >>> ...

  9. python不包含某字符_python正则表达式匹配不包含某几个字符的字符串方法

    python正则表达式匹配不包含某几个字符的字符串方法 一.匹配目标 文件中所有以https?://开头,以.jpg|.png|.jpeg结尾的字符串 二.尝试过程 1) 自然想到正则表达式r'(ht ...

最新文章

  1. Android中的事件处理机制
  2. 深度学习: mAP (Mean Average Precision)
  3. 注解_自定义注解_格式本质
  4. 关于uniapp引入Vant Weapp第三方组件,遇到的问题和解决方式
  5. 去除List集合中的重复值(四种好用的方法)
  6. 把百度网站设为首页_大仙SEO:如何解决网站首页百度收录后被删除?【SEO案例】...
  7. 一分钟了解react
  8. 雷林鹏分享:Lua 面向对象
  9. 传感器怎么获取障碍物的宽度信息_机器人感知 -- 测距传感器
  10. 操作系统|操作系统概述
  11. Centos7开放及查看端口
  12. Vivado设计流程(三)功能仿真
  13. 防热服的设计数学建模_数学建模之高温作业专用服装设计.pdf
  14. 炒股杠杆-API智能交易软件基本函数
  15. 搭建-ico图标制作
  16. 收到大量垃圾短信怎么办?如何屏蔽垃圾短信?
  17. 两个自变量和一个因变量spss_多个自变量对一个因变量的影响(SPSS:协方差分析)...
  18. C语言--指向指针的指针
  19. 【Java基础】HashMap原理及常见面试题目
  20. 中国计算机应用大会征稿通知,全球华人计算机教育应用大会(GCCCE)2015征稿启事...

热门文章

  1. Unity 宣布正式收购 Weta Digital
  2. 那些“不顾一切”要搞开源的人,现在怎样了?
  3. 欧洲最大云服务公司 OVH 法国机房着火:1个数据中心被完全烧毁、部分客户数据完全丢失且无法恢复
  4. 支持百万级TPS,Kafka是怎么做到的?
  5. 华为今年不会推出运行鸿蒙OS的手机;Deno 1.3.2发布|极客头条
  6. 百度NLP“十年十人”重磅亮相,推出全球最大中文NLP数据共建计划“千言”
  7. 互联网巨头的“搜索”暗战
  8. “恭喜那些拿到 Java 月薪 2 万 Offer 的人”
  9. 小米回应暴力裁员;报告称安卓手机贬值速度是 iPhone 两倍;Ant Design 4.0.1 发布| 极客头条...
  10. 火神山医院完工,2月3日收治病人!“云监工”请放心!