2015-04-01 37 views
1

您好IAM試圖找到一個字符串的所有degits但它返回一個空列表我怎樣才能找到使用正則表達式在python字符串中的所有數字

我的代碼:

import re 
re.findall(r'/d','5585858') 
>>>> [] 

什麼請錯誤?

+1

它是'\ d'。不是你寫的'/ d'。 – 2015-04-01 07:46:07

+0

[c for s in if if「0」<= c <=「9」] – 2015-04-01 07:49:09

+0

雖然我更喜歡使用isdigit()來檢查一個字符是否是一個數字,但這也很好。 – TigerhawkT3 2015-04-01 07:53:28

回答

2

你有一個錯誤的模式,你需要\d第一和得到所有的數字,你可以添加+\d爲匹配1個或多個組合的數字:

re.findall(r'\d+','5585858') 

也可根據您的字符串,你可以使用其他功能如re.search可能更有效。

如果你想你的字符串列表轉換,你可以簡單地使用list

>>> list('5585858') 
['5', '5', '8', '5', '8', '5', '8'] 
1

使用'\d+'代替'/d'

>>> import re 
>>> re.findall(r'\d+', '5585858') 
['5585858'] 
0

你甚至都不需要一個正則表達式。

>>> [number for number in '5585a858' if number.isdigit()] 
['5', '5', '8', '5', '8', '5', '8'] 
相關問題