首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python正则表达式模式匹配数字和括号?

Python正则表达式模式匹配数字和括号?
EN

Stack Overflow用户
提问于 2019-01-04 08:14:41
回答 2查看 309关注 0票数 0

我想知道如何才能得到/匹配一个以括号中的数字列表结尾的数字列表?

原始文本

Cisco软件,3600软件(C 3660-JK9S2-M),12.4(25b)版强文本,发布软件(fc1) ROM: 3600软件(C 3660-JK9S2-M),12.4(25b)版本,发布软件(fc1)

期望匹配

代码语言:javascript
复制
12.4(25b)

下面是我尝试过的,但是它不起作用,也没有得到特定的版本

代码语言:javascript
复制
^\d.*\)$ 
^[0-9].*\)$
Version\s\d.*\)
Version \d{2}.*\)$

有什么想法吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-04 08:25:02

试试这个:.*Version (.*?\)).*。不管括号中的数字后面是否有字母,这个表达式都应该起作用。然后使用\1作为“变量”获取结果(版本号部分)。在python中,可以使用来自结果的group()函数来完成它。为了安全起见,事先检查一下是否有匹配的东西。

完整示例代码:

代码语言:javascript
复制
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),因此不需要在末尾进行检查。

票数 0
EN

Stack Overflow用户

发布于 2019-01-04 08:19:23

愿此工作:\d+\.\d+\(\d+.\)结果:

如有任何问题,请留言。

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

https://stackoverflow.com/questions/54035242

复制
相关文章

相似问题

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