我需要输出的版本号,对于这两个输出,我只需要一个代码。
版本:从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代码的免费软件。
我试过这个代码:
r = re.findall(r'Version\s*(([\w]+))', str)
r[0]它提供了产出:
15.5 03.08.07.E
预期产出:
15.5(1)SY2 03.08.07.E
发布于 2019-11-05 08:08:39
试试Version\s+([^,\s]+).+
解释:
Version -匹配Version字面意思
\s+ -匹配一个或多个空白
([^,\s]+) -匹配空白\s或逗号,中的一个或多个字符,并将其存储在第一个捕获组中。
.+ -匹配任何字符中的一个或多个字符(换行符除外),这将消耗输出的其余部分,并防止在一个输出中匹配多个版本。
发布于 2019-11-05 08:04:05
我想这就是你想要的表达:
Version\s*(.+?)[\s|,]它匹配“版本”之后的任何内容,直到找到逗号或空白为止。
发布于 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
https://stackoverflow.com/questions/58706323
复制相似问题