我有一个unicode字符串:
u'123 456 \u0320\u0111\u0333 '
从中提取数字的最佳方法是什么?
答案 0 :(得分:2)
您可以使用re.findall
功能。
>>> s = u'123 456 \u0320\u0111\u0333 '
>>> re.findall(r'\d+', s)
['123', '456']
OR
>>> [i for i in s.split() if i.isdigit()]
['123', '456']
答案 1 :(得分:1)
尝试使用过滤功能:
在Python 2中。*:
>>> filter(lambda x: x.isdigit(), u'123 456 \u0320\u0111\u0333 ')
'123456'
在Python 3。*中:
>>> ''.join(filter(lambda x: x.isdigit(), u'123 456 \u0320\u0111\u0333 '))
'123456'
答案 2 :(得分:0)
import re
s = u'123 456 \u0320\u0111\u0333 '
" ".join(re.findall('\d+', s))