如何利用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爬虫代理IP池实现方法
Jan 05 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
Python实现两个list对应元素相减操作示例
Jun 09 Python
python实现Floyd算法
Jan 03 Python
Python3生成手写体数字方法
Jan 30 Python
Python设计模式之外观模式实例详解
Jan 17 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
Flask框架模板继承实现方法分析
Jul 31 Python
Django 请求Request的具体使用方法
Nov 11 Python
python 中的[:-1]和[::-1]的具体使用
Feb 13 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
May 26 Python
python中setuptools的作用是什么
Jun 19 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
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
BOM与DOM的区别分析
2010/10/26 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
让新消息在网页标题闪烁提示的jQuery代码
2013/11/04 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
JavaScript中的异常捕捉介绍
2014/12/31 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
基于Angularjs实现分页功能
2016/05/30 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
用nodejs搭建websocket服务器
2017/01/23 NodeJs
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
简单实现js拖拽效果
2017/07/25 Javascript
vue项目如何刷新当前页面的方法
2018/05/18 Javascript
iview同时验证多个表单问题总结
2018/09/29 Javascript
Node 模块原理与用法详解
2020/05/13 Javascript
js实现全选和全不选
2020/07/28 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
2020/12/05 Javascript
rabbitmq(中间消息代理)在python中的使用详解
2017/12/14 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
python监控进程脚本
2018/04/12 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
Python faker生成器生成虚拟数据代码实例
2020/07/20 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
家长高考寄语
2015/02/27 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
Nginx的基本概念和原理
2022/03/21 Servers
Python利用capstone实现反汇编
2022/04/06 Python
如何用H5实现好玩的2048小游戏
2022/07/23 HTML / CSS