如何利用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基础教程之循环介绍
Aug 29 Python
Python在图片中添加文字的两种方法
Apr 29 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
Python单体模式的几种常见实现方法详解
Jul 28 Python
Python中input与raw_input 之间的比较
Aug 20 Python
想学python 这5本书籍你必看!
Dec 11 Python
5分钟 Pipenv 上手指南
Dec 20 Python
Django框架用户注销功能实现方法分析
May 28 Python
python列表推导式操作解析
Nov 26 Python
Python使用Socket实现简单聊天程序
Feb 28 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
python blinker 信号库
May 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 什么是PEAR?(第二篇)
2009/03/19 PHP
PHP仿盗链代码
2012/06/03 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能示例
2017/09/15 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
JQuery里面的几种选择器 查找满足条件的元素$("#控件ID")
2011/08/23 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
JavaScript中的函数嵌套使用
2015/06/04 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
vue仿淘宝订单状态的tab切换效果
2020/06/23 Javascript
karma+webpack搭建vue单元测试环境的方法示例
2018/05/24 Javascript
详解如何使用babel进行es6文件的编译
2018/05/29 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
使用puppeteer爬取网站并抓出404无效链接
2018/12/20 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
Python格式化压缩后的JS文件的方法
2015/03/05 Python
Python验证企业工商注册码
2015/10/25 Python
python中format()函数的简单使用教程
2018/03/14 Python
Python批处理删除和重命名文件夹的实例
2018/07/11 Python
Python写一个基于MD5的文件监听程序
2019/03/11 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
Python列表推导式实现代码实例
2020/09/09 Python
瑞士设计师家具和家居饰品网上商店:Bruno Wickart
2019/03/18 全球购物
国际经济贸易专业推荐信
2013/11/06 职场文书
主管职责范文
2013/11/09 职场文书
新品发布会策划方案
2014/06/08 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
婚庆答谢词
2015/01/04 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书