如何利用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实现的简单万年历例子分享
Apr 25 Python
理解python多线程(python多线程简明教程)
Jun 09 Python
python基于windows平台锁定键盘输入的方法
Mar 05 Python
用Python生成器实现微线程编程的教程
Apr 13 Python
python抓取网页中图片并保存到本地
Dec 01 Python
深入解析Python中的上下文管理器
Jun 28 Python
Python设置默认编码为utf8的方法
Jul 01 Python
Python的iOS自动化打包实例代码
Nov 22 Python
Python decorator拦截器代码实例解析
Apr 04 Python
Django如何使用jwt获取用户信息
Apr 21 Python
pytorch VGG11识别cifar10数据集(训练+预测单张输入图片操作)
Jun 24 Python
如何使用Pytorch搭建模型
Oct 26 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入门小知识
2008/03/24 PHP
php IP及IP段进行访问限制的代码
2008/12/17 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
基于jquery的Repeater实现代码
2010/07/17 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
在多个页面使用同一个HTML片段的代码
2011/03/04 Javascript
jQuery实现id模糊查询的小例子
2013/03/19 Javascript
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
优化Node.js Web应用运行速度的10个技巧
2014/09/03 Javascript
nodejs中实现阻塞实例
2015/03/24 NodeJs
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
基于JavaScript实现淘宝商品广告效果
2017/08/10 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
python多线程抽象编程模型详解
2019/03/20 Python
Python的高阶函数用法实例分析
2019/04/11 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
python opencv实现直线检测并测出倾斜角度(附源码+注释)
2020/12/31 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
Omio波兰:全欧洲低价大巴、火车和航班搜索和比价
2018/02/16 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
上海期货面试题
2014/01/31 面试题
Zabbix6通过ODBC方式监控Oracle 19C的详细过程
2022/09/23 Servers