import re
string = u'127米'
print re.findall(r"\d+\.?\d*", string)
方法二、利用filter(str.isdigit, iterable)
[plain] view plain copy
string = u'127米'
print (filter(str.isdigit, string))
bug:TypeError: descriptor 'isdigit' requires a 'str' object but received a 'unicode'
原因:string不是str类型
修改为:
[plain] view plain copy
string = u'127米'
string2 = string.encode('gbk')
print (type(str))
print (filter(str.isdigit, string2))
结果:
127
注意:要提取的字符串不能命名为str,否则会出现TypeError: isdigit() takes no arguments (1 given)
因为str和filter里的str重名了。