2016-04-08 121 views
-1

我想解析長度爲&的字符串,例如:'(10,2)',我需要取出長度爲&的精度。使用正則表達式解析python3中的字符串

需要輸出爲:

_len = 10, _pre = 2

下面我試過,但它不工作,

>>> import re 
>>> my_str = 'numeric(10,2)' 
>>> m = re.match(r'\d+,\d+', my_str) 
>>> m 
>>> m = re.match(r'(\d+,\d+)', my_str) 
>>> m 
>>> m = re.match('\((+d),(+d)\)', my_str) 
>>> m = re.match('\((+d),(+d)\)', my_str) 
Traceback (most recent call last): 
+0

閱讀此篇更多信息http://stackoverflow.com/questions/180986/what-is-the-difference-between-pythons-re-search-and-重新匹配 – Kasramvd

+0

和文檔https://docs.python.org/3/library/re.html#search-vs-match – Kasramvd

+0

@Kasramvd感謝您的參考,我會挑剔地提及它們。 – n33rma

回答

2

re.match開始從行開始搜索,這是爲什麼你沒有得到任何匹配。

使用re.search代替:

>>> m = re.search(r'(\d+),(\d+)', my_str) 
>>> if m: 
...  _len, _pre = map(int, m.groups()) 
... 
>>> _len, _pre 
(10, 2) 
+0

謝謝@timgeb .. – n33rma

+0

您可以在正則表達式中使用捕獲組,以避免拆分的需要。 –

+0

@丹尼羅斯曼好建議 – timgeb

相關問題