从unicode字符串中提取数字

时间:2015-03-24 12:39:43

标签: python

我有一个unicode字符串:

u'123 456 \u0320\u0111\u0333 '

从中提取数字的最佳方法是什么?

3 个答案:

答案 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))