如何在Python中删除字符串中的所有非数字字符?
发布于 2009-08-08 17:25:21
>>> import re
>>> re.sub("[^0-9]", "", "sdkjh987978asd098as0980a98sd")
'987978098098098'
发布于 2009-08-08 17:16:56
不确定这是否是最有效的方法,但是:
>>> ''.join(c for c in "abc123def456" if c.isdigit())
'123456'
''.join
部分意味着将所有结果字符组合在一起,中间没有任何字符。然后它的其余部分是列表理解,其中(正如您可能猜到的)我们只获取字符串中与条件isdigit
匹配的部分。
发布于 2009-09-07 03:01:28
这应该适用于Python2中的字符串和unicode对象,以及Python3中的字符串和字节:
# python <3.0
def only_numerics(seq):
return filter(type(seq).isdigit, seq)
# python ≥3.0
def only_numerics(seq):
seq_type= type(seq)
return seq_type().join(filter(seq_type.isdigit, seq))
https://stackoverflow.com/questions/1249388
复制相似问题