如何利用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实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
Python ORM框架SQLAlchemy学习笔记之数据查询实例
Jun 10 Python
Python scikit-learn 做线性回归的示例代码
Nov 01 Python
Python tornado队列示例-一个并发web爬虫代码分享
Jan 09 Python
详解Python之unittest单元测试代码
Jan 24 Python
Python之reload流程实例代码解析
Jan 29 Python
python如何查看微信消息撤回
Nov 27 Python
pytorch索引查找 index_select的例子
Aug 18 Python
python支付宝支付示例详解
Aug 22 Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 Python
python初步实现word2vec操作
Jun 09 Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
Apr 07 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+mysql)
2007/11/23 PHP
深入分析php之面向对象
2013/05/15 PHP
php读取csv文件后,uft8 bom导致在页面上显示出现问题的解决方法
2013/08/10 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
php usort 使用用户自定义的比较函数对二维数组中的值进行排序
2017/05/02 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
javascript 在网页中的运用(asp.net)
2009/11/23 Javascript
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
现代 JavaScript 开发编程风格Idiomatic.js指南中文版
2014/05/28 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
jQueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug及解决方案
2016/12/19 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
JS将网址url转化为JSON格式的方法
2018/07/02 Javascript
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
深入理解es6块级作用域的使用
2019/03/28 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python创建临时文件夹的方法
2015/07/06 Python
Python中scatter函数参数及用法详解
2017/11/08 Python
python实现点对点聊天程序
2018/07/28 Python
python实现根据指定字符截取对应的行的内容方法
2018/10/23 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
python word转pdf代码实例
2019/08/16 Python
Python实现网络聊天室的示例代码(支持多人聊天与私聊)
2021/01/27 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
如何获得EntityManager
2014/02/09 面试题
业务部主管岗位职责
2014/01/29 职场文书
社团2014年植树节活动总结
2014/03/11 职场文书
教堂婚礼主持词
2014/03/14 职场文书
网络编辑岗位职责
2014/03/18 职场文书
2014年个人工作总结模板
2014/12/15 职场文书