如何利用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 参数列表中的self 显式不等于冗余
Dec 01 Python
Python检测生僻字的实现方法
Oct 23 Python
Python探索之pLSA实现代码
Oct 25 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Python简单实现socket信息发送与监听功能示例
Jan 03 Python
numpy中loadtxt 的用法详解
Aug 03 Python
win10下python3.5.2和tensorflow安装环境搭建教程
Sep 19 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
python 读取Linux服务器上的文件方法
Dec 27 Python
Python基于pandas爬取网页表格数据
May 11 Python
导致python中import错误的原因是什么
Jul 01 Python
Python中logger日志模块详解
Aug 04 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 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
Yii学习总结之安装配置
2015/02/22 PHP
PHP仿tp实现mvc框架基本设计思路与实现方法分析
2018/05/23 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
PhpSpreadsheet设置单元格常用操作汇总
2020/11/13 PHP
经常用到的JavasScript事件的翻译
2007/04/09 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
用NodeJS实现批量查询地理位置的经纬度接口
2016/08/16 NodeJs
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
一篇文章让你彻底弄懂JS的事件冒泡和事件捕获
2017/08/14 Javascript
详解RequireJs官方使用教程
2017/10/31 Javascript
详解如何模拟实现node中的Events模块(通俗易懂版)
2019/04/15 Javascript
深入了解query和params的使用区别
2019/06/24 Javascript
es6中reduce的基本使用方法
2019/09/10 Javascript
微信小程序点击view动态添加样式过程解析
2020/01/21 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
Python 编码处理-str与Unicode的区别
2016/09/06 Python
python 生成图形验证码的方法示例
2018/11/11 Python
Numpy之random函数使用学习
2019/01/29 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
python画环形图的方法
2020/03/25 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
HTML5 文件域+FileReader 分段读取文件并上传到服务器
2017/10/23 HTML / CSS
经济与贸易专业应届生求职信
2013/11/19 职场文书
教师自我鉴定
2013/12/13 职场文书
杠杆的科学教学反思
2014/01/10 职场文书
超市国庆节促销方案
2014/02/20 职场文书
投资建议书模板
2014/05/12 职场文书
创先争优演讲稿
2014/09/15 职场文书
个人作风纪律整顿整改措施
2014/10/25 职场文书
领导干部“四风”查摆问题个人整改措施
2014/10/28 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS