如何利用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程序语言快速上手教程
Jul 18 Python
Python获取linux主机ip的简单实现方法
Apr 18 Python
python将list转为matrix的方法
Dec 12 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
Oct 18 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
Dec 25 Python
selenium中get_cookies()和add_cookie()的用法详解
Jan 06 Python
Pymysql实现往表中插入数据过程解析
Jun 02 Python
python中numpy.empty()函数实例讲解
Feb 05 Python
Python爬虫之爬取最新更新的小说网站
May 06 Python
Python Matplotlib绘制条形图的全过程
Oct 24 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脚本数据库功能详解(下)
2006/10/09 PHP
php异常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE  eval()'d code error
2011/05/19 PHP
PHP重定向的3种方式
2013/03/07 PHP
解析php做推送服务端实现ios消息推送
2013/07/01 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
基于laravel-admin 后台 列表标签背景的使用方法
2019/10/03 PHP
FCK调用方法..
2006/12/21 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
javascript 面向对象编程基础:继承
2009/08/21 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
再分享70+免费的jquery 图片滑块效果插件和教程
2014/12/15 Javascript
JavaScript获取URL中参数querystring的方法详解
2016/10/11 Javascript
使用Browserify来实现CommonJS的浏览器加载方法
2017/05/14 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
2018/11/14 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
Python入门教程之运算符与控制流
2016/08/17 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
pytorch + visdom 处理简单分类问题的示例
2018/06/04 Python
Django调用百度AI接口实现人脸注册登录代码实例
2020/04/23 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
CSS3实现多样的边框效果
2018/05/04 HTML / CSS
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
linux面试题参考答案(6)
2014/08/29 面试题
建筑实习自我鉴定
2013/10/18 职场文书
玩具公司的创业计划书
2013/12/31 职场文书
领导干部廉政承诺书
2014/03/27 职场文书
公路绿化方案
2014/05/12 职场文书
会计学自荐信
2014/06/03 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python