如何从字符串中删除除数字以外的所有字符?
发布于 2009-09-20 12:18:49
使用re.sub
,如下所示:
>>> import re
>>> re.sub('\D', '', 'aas30dsa20')
'3020'
\D
匹配任何非数字字符,因此,上面的代码实质上是用空字符串替换每个非数字字符。
或者您可以使用filter
,如下所示(在Python2中):
>>> filter(str.isdigit, 'aas30dsa20')
'3020'
由于在Python3中,filter
返回的是迭代器而不是list
,因此您可以使用以下代码:
>>> ''.join(filter(str.isdigit, 'aas30dsa20'))
'3020'
发布于 2009-09-20 12:24:18
s=''.join(i for i in s if i.isdigit())
另一个生成器变体。
发布于 2009-09-20 12:24:05
您可以使用filter:
filter(lambda x: x.isdigit(), "dasdasd2313dsa")
在python3.0上,你必须加入这个(有点难看:( ))
''.join(filter(lambda x: x.isdigit(), "dasdasd2313dsa"))
https://stackoverflow.com/questions/1450897
复制相似问题