我想知道如何才能得到/匹配一个以括号中的数字列表结尾的数字列表?
原始文本
Cisco软件,3600软件(C 3660-JK9S2-M),12.4(25b)版强文本,发布软件(fc1) ROM: 3600软件(C 3660-JK9S2-M),12.4(25b)版本,发布软件(fc1)
期望匹配
12.4(25b)下面是我尝试过的,但是它不起作用,也没有得到特定的版本
^\d.*\)$
^[0-9].*\)$
Version\s\d.*\)
Version \d{2}.*\)$有什么想法吗?
谢谢
发布于 2019-01-04 08:25:02
试试这个:.*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))要获得多个版本号(即“版本”字符串之后的两个数字实例),可以使用regexoutput = re.findall('Version (.*?\))',show)。在这里,返回一个列表,并通过定义自动获取组(请参阅https://docs.python.org/3/library/re.html#re.findall),因此不需要在末尾进行检查。
发布于 2019-01-04 08:19:23
愿此工作:\d+\.\d+\(\d+.\)结果:

如有任何问题,请留言。
https://stackoverflow.com/questions/54035242
复制相似问题