正则表达式Python,标记字符串的开始和结束?

2024-10-04 05:34:13 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我今天刚开始使用regex来编写python,我似乎无法让它正常工作。你知道吗

所以我有绳子

"2800 Software (C2800NM-ADVIPSERVICESK9-M), Version 12.4(24)T8, RELEASE SOFTWARE (fc1)"

这是思科路由器的一些输出,我需要提取版本号。版本号是“version”后面的字符串,以“,”结尾。我能不能写一个正则表达式,每次都根据“Version”出现在“之前”和“之后”来提取版本号?我只需要“12.4(24)T8”拉和其他路由器有完全不同的号码。你知道吗


Tags: 字符串releaseversion版本号结尾路由器softwareregex
2条回答

如果要从这个字符串中提取版本,可以使用^{}来完成。你知道吗

>>> import re
>>> s = '2800 Software (C2800NM-ADVIPSERVICESK9-M), Version 12.4(24)T8, RELEASE SOFTWARE (fc1)'
>>> re.search(r'\bVersion\s*([^,]+)', s).group(1)
'12.4(24)T8'

如果需要从中提取多个字符串,请使用^{}

>>> re.findall(r'\bVersion\s*([^,]+)', s)
['12.4(24)T8']

说明:

\b         # the boundary between a word character (\w) and not a word character
Version    # 'Version'
\s*        # whitespace (\n, \r, \t, \f, and " ") (0 or more times)
(          # group and capture to \1:
  [^,]+    #   any character except: ',' (1 or more times)
)          # end of \1
Version\s*(\S+?),

试试看这个。用匹配.组(1) 为了得到你的结果。你知道吗

或者你可以用这个。你知道吗

print re.findall(r"Version\s*(\S+?),",x)

或者你可以用这个。你知道吗

print re.search(r"Version\s*(\S+?),",x).group(1)

请参见演示。你知道吗

http://regex101.com/r/bA0jG5/10

相关问题 更多 >