my_str = '123and456' number = filter(str.isdigit, my_str )
# number = 123456
使用正則表達式:
>>> import re >>> re.findall(r'\d+', 'hello 42 I\'m a 32 string 30') ['42', '32', '30']
這也將匹配42 bla42bla
。如果您只想要按字邊界(空格,句號,逗號)分隔的數字,則可以使用\ b:
>>> re.findall(r'\b\d+\b', 'he33llo 42 I\'m a 32 string 30') ['42', '32', '30']
最終得到一個數字列表而不是字符串列表:
>>> [int(s) for s in re.findall(r'\b\d+\b', 'he33llo 42 I\'m a 32 string 30')] [42, 32, 30]