我想知道如何获取/匹配以括号括起来的数字列表结尾的digist列表?
原始文本
Cisco IOS软件,3600软件(C3660-JK9S2-M),版本12.4(25b)强文本,发行软件(fc1) ROM:3600软件(C3660-JK9S2-M),版本12.4(25b),发布软件(fc1)
预期的比赛
12.4(25b)
下面是我尝试过的方法,但是它不起作用或无法获得特定版本
^\d.*\)$
^[0-9].*\)$
Version\s\d.*\)
Version \d{2}.*\)$
有什么主意吗?
谢谢
答案 0 :(得分:0)
答案 1 :(得分:0)
尝试以下操作:.*Version (.*?\)).*
。无论括号中的数字后面是否有字母,此表达式都应起作用。然后,您可以使用\1
作为“变量”来获取结果(版本号部分)。在python中,您可以从结果中使用group()
函数。事先检查是否完全匹配安全性。
完整的示例代码:
import re
show = 'Cisco IOS Software, 3600 Software (C3660-JK9S2-M), Version 12.4(25b)strong text, RELEASE SOFTWARE (fc1) ROM: 3600 Software (C3660-JK9S2-M), Version 12.4(25b), RELEASE SOFTWARE (fc1)'
regexoutput = re.search('.*Version (.*?\)).*', show)
if regexoutput:
print(regexoutput.group(1))
要获取多个版本号(即'Version'字符串后的两个版本号,可以使用regexoutput = re.findall('Version (.*?\))',show)
。此处,将返回一个列表,并且该组将根据定义自动获取(请参见{{ 3}}),因此不需要最后检查。