如何利用python正则表达式匹配版本信息


Posted in Python onDecember 09, 2020

问题描述:

用正则表达式提取文本中的版本号信息,比如说:10.1.1 9.5 10.10.11

并实现在文本中(.txt)读入,写出到文本(.txt)

首先构造正则表达式:

pattern=Vpat=“I.(I.)*I”

构造正则表达式:r'\d+\.(?:\d+\.)*\d+'

import re
pattern = r'\d+\.(?:\d+\.)*\d+'
f=open("F:\\xxxxxx\\banners.txt","r")
data=f.read()
f.close
result=re.findall(pattern,data)
f1=open("F:\\xxxxxx\\test1.txt","w")
for i in result:
 f1.write(i+'\n')
f.close

(1)re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

(2)findall是把所有匹配到的结果都拿出来

(3)后面的group()括号里还能加数字,可以用来导出特定行

(4)\d是整数的意思 +是1-无穷(就是1个以上)

(5) *是0到无穷####(I.)*是0个以上的整数加点

(6)‘(?: )' 无捕获组

当你要将一部分规则作为一个整体对它进行某些操作,比如指定其重复次数时,你需要将这部分规则用'(?:'和 ‘)'把它包围起来,而不能仅仅只用一对括号,那样将得到绝对出人意料的结果。

例:匹配字符串中重复的'ab'

>>> s='ababab abbabb aabaab'

>>> re.findall( r'\b(?:ab)+\b' , s )

结果:[‘ababab']

如果仅使用一对括号,看看会是什么结果:

>>> re.findall( r'b\(ab)+\b' , s )

结果:[‘ab']

这是因为如果只使用一对括号,那么这就成为了一个组(group)。组的使用比较复杂。

调试过程:

import re
#pattern = r'.*?(\d.*\d).*'
#pattern = r'\d\.\d\.\d'
#pattern = r'\d\.(?:\d\.)*\d'
#pattern = r'\d*\.(?:\d\.)*\d*'
#pattern = r'\d\.(\d\.)*\d'
pattern = r'\d+\.(?:\d+\.)*\d+'
f=open("F:\\shovat\\banners.txt","r")
data=f.read()
##data=f.readline()
f.close
#for line in data:
result=re.findall(pattern,data)
##print(result)
 # print(result)
 # print(result.group())
#t=(result.group())
 #t=(result.group(1))

f1=open("F:\\shovat\\test1.txt","w")
for i in result:
 f1.write(i+'\n')
f.close

banners.txt

ddd 1.1.1cisco ios software,c3750 software (c3750-ipbase-m),version
ddd 2.2.2 12.2(53)se,release softeware(fc2) 10.1.1 
ddd 3.3.3 technical support:http://www.cisco.com/techsupport
ddd 4.4.4 copyright (c) 1986-2009 by cisco systems,inc.
ddd 5.5.5 comiled sun 13-dec-09 16:25 by prod_rel_team
9.5

识别结果:

test1.txt

1.1.1
2.2.2
12.2
10.1.1
3.3.3
4.4.4
5.5.5
9.5

总结

到此这篇关于如何利用python正则表达式匹配版本信息的文章就介绍到这了,更多相关python正则匹配版本信息内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python验证码识别处理实例
Dec 28 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
Python实现的直接插入排序算法示例
Apr 29 Python
Python实现查找数组中任意第k大的数字算法示例
Jan 23 Python
基于Python安装pyecharts所遇的问题及解决方法
Aug 12 Python
关于python3中setup.py小概念解析
Aug 22 Python
Python通过Pillow实现图片对比
Apr 29 Python
python的launcher用法知识点总结
Aug 07 Python
Python 数据分析之逐块读取文本的实现
Dec 14 Python
Python爬虫之爬取最新更新的小说网站
May 06 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 Python
浅析Python中的套接字编程
Jun 22 Python
python基于win32api实现键盘输入
Dec 09 #Python
用python实现一个简单的验证码
Dec 09 #Python
使用Python提取文本中含有特定字符串的方法示例
Dec 09 #Python
python使用正则表达式匹配txt特定字符串(有换行)
Dec 09 #Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 #Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 #Python
python excel多行合并的方法
Dec 09 #Python
You might like
《心理测量者3》剧场版动画预告
2020/03/02 日漫
简单的php 验证图片生成函数
2009/05/21 PHP
PHP三层结构(上) 简单三层结构
2010/07/04 PHP
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
Yii2-GridView 中让关联字段带搜索和排序功能示例
2017/01/21 PHP
laravel高级的Join语法详解以及使用Join多个条件
2019/10/16 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
asp.net网站开发中用jquery实现滚动浏览器滚动条加载数据(类似于腾讯微博)
2012/03/14 Javascript
浏览器加载、渲染和解析过程黑箱简析
2012/11/29 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
JQuery Highcharts 动态生成图表的方法
2013/11/15 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
jQuery+jsp下拉框联动获取本地数据的方法(附源码)
2015/12/03 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
Vue 拦截器对token过期处理方法
2018/01/23 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
2018/05/04 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
2018/10/23 Javascript
vant自定义二级菜单操作
2020/11/02 Javascript
python获取外网IP并发邮件的实现方法
2017/10/01 Python
Pandas之drop_duplicates:去除重复项方法
2018/04/18 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
python使用PIL实现多张图片垂直合并
2019/01/15 Python
CSS3 实现侧边栏展开收起动画
2014/12/22 HTML / CSS
自我评价范文分享
2014/01/04 职场文书
2014年学校国庆主题活动方案
2014/09/16 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
2016七夕情人节感言
2015/12/09 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
详解NodeJS模块化
2021/06/15 NodeJs
基于docker安装zabbix的详细教程
2022/06/05 Servers