如何利用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 相关文章推荐
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
python简单商城购物车实例代码
Mar 15 Python
python中不能连接超时的问题及解决方法
Jun 10 Python
python实现AES加密解密
Mar 28 Python
Django实现微信小程序的登录验证功能并维护登录态
Jul 04 Python
Python从列表推导到zip()函数的5种技巧总结
Oct 23 Python
python代码如何实现余弦相似性计算
Feb 09 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
Apr 08 Python
python实现小程序推送页面收录脚本
Apr 20 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
Python爬取科目四考试题库的方法实现
Mar 30 Python
Python实现打乒乓小游戏
Sep 25 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
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
详解php框架Yaf路由重写
2017/06/20 PHP
php+redis消息队列实现抢购功能
2018/02/08 PHP
checkbox 多选框 联动实现代码
2008/10/22 Javascript
javascript 动态添加事件代码
2008/11/30 Javascript
JavaScript DOM学习第一章 W3C DOM简介
2010/02/19 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
JS实现仿京东淘宝竖排二级导航
2014/12/08 Javascript
js实现点击图片将图片地址复制到粘贴板的方法
2015/02/16 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
JavaScript将base64图片转换成formData并通过AJAX提交的实现方法
2016/10/24 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
2017/02/19 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
使用Python的Supervisor进行进程监控以及自动启动
2014/05/29 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
解决Python一行输出不显示的问题
2018/12/03 Python
python cv2在验证码识别中应用实例解析
2019/12/25 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
python3中的logging记录日志实现过程及封装成类的操作
2020/05/12 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
幼儿园老师辞职信
2014/01/20 职场文书
财务总监岗位职责
2014/03/07 职场文书
行政文员实习自我鉴定范文
2014/09/14 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书
大学班干部竞选稿
2015/11/20 职场文书
pytest进阶教程之fixture函数详解
2021/03/29 Python
5分钟教你docker安装启动redis全教程(全新方式)
2021/05/29 Redis