首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用regex从输出中提取版本号?

使用regex从输出中提取版本号?
EN

Stack Overflow用户
提问于 2019-11-05 07:22:57
回答 3查看 653关注 0票数 0

我需要输出的版本号,对于这两个输出,我只需要一个代码。

版本:从Cisco开始读取输出,直到版本,然后提取版本号 例如:阅读类似思科IOS软件,s2t54软件(s2t54-ADVIPSERVICESK9-M),版本15.5(1)SY2,输出版本 输出: 15.5(1)SY2 输出1:“”思科IOS软件,s2t54软件(s2t54-ADVIPSERVICESK9 9-M),版本15.5(1)SY2,发布软件(fc6):ROM系统引导带,版本12.2(50r)SYS3,发布软件(fc1) CPU: MPC8572_E,版本: 2.2,(0x80E80022)核心: E500,版本: 3.0,(0x80210030)‘“ 输出2: Cisco IOS软件、IOS-XE软件、催化剂4500 L3开关软件(cat4500es8-UNIVERSALK9-M)、版本03.08.07.E发布软件(fc2),("GPL")版本2.0。GPLVersion2.0授权的软件代码是根据GPLVersion2.0条款提供GPL代码的免费软件。

我试过这个代码:

代码语言:javascript
复制
r = re.findall(r'Version\s*(([\w]+))', str)
r[0]

它提供了产出:

15.5 03.08.07.E

预期产出:

15.5(1)SY2 03.08.07.E

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-05 08:08:39

试试Version\s+([^,\s]+).+

解释:

Version -匹配Version字面意思

\s+ -匹配一个或多个空白

([^,\s]+) -匹配空白\s或逗号,中的一个或多个字符,并将其存储在第一个捕获组中。

.+ -匹配任何字符中的一个或多个字符(换行符除外),这将消耗输出的其余部分,并防止在一个输出中匹配多个版本。

演示

票数 1
EN

Stack Overflow用户

发布于 2019-11-05 08:04:05

我想这就是你想要的表达:

代码语言:javascript
复制
Version\s*(.+?)[\s|,]

它匹配“版本”之后的任何内容,直到找到逗号或空白为止。

票数 1
EN

Stack Overflow用户

发布于 2022-01-03 13:45:02

我认为最好的是;

A=r‘’Version\s*(.+?)[\s_

示例输出:

6.4.2

03.06.06E

03.16.07b.S

12.0(18b)

12.2(33.3.8)SB13

12.2(33)SXI2a

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58706323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档