2014-09-11 86 views
0

所以我剛開始進入Python的正則表達式,我似乎無法得到這個工作。正則表達式Python,標記字符串的開始和結束?

所以我有串

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

這是一個從一臺思科路由器的一些輸出,我需要拉動的版本號。版本號是「Version」之後的字符串,並以「,」結尾。我可以編寫一個正則表達式,每次都會根據之前出現的「版本」和「,」之後提取版本號嗎?我只需要「12.4(24)T8」拉和其他路由器有不同的數字是完全不同的。

回答

0
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

2

如果你試圖從這個單一字符串的版本,你可以使用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 
相關問題