簡體   English   中英

正則表達式Python,標記字符串的開始和結束?

[英]Regular Expression Python, marking beginning and end of string?

因此,我今天才剛開始使用regex來使用python,但似乎無法正常工作。

所以我有字符串

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

這是cisco路由器的一些輸出,我需要提取版本號。 版本號是“版本”之后的字符串,並以“,”結尾。 我是否可以編寫一個正則表達式來根據每次出現在“ Version”之前和之后的“,”立即提取版本號? 我只需要拉“ 12.4(24)T8”,其他路由器的編號完全不同即可。

如果您試圖從單個字符串中提取版本,則可以使用re.search()來完成。

>>> 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()

>>> 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+?),

試試這個,使用match.group(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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM