首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中删除字符串中的所有非数字字符

在Python中删除字符串中的所有非数字字符
EN

Stack Overflow用户
提问于 2009-08-08 17:13:01
回答 6查看 210.6K关注 0票数 204

如何在Python中删除字符串中的所有非数字字符?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-08-08 17:25:21

代码语言:javascript
复制
>>> import re
>>> re.sub("[^0-9]", "", "sdkjh987978asd098as0980a98sd")
'987978098098098'
票数 352
EN

Stack Overflow用户

发布于 2009-08-08 17:16:56

不确定这是否是最有效的方法,但是:

代码语言:javascript
复制
>>> ''.join(c for c in "abc123def456" if c.isdigit())
'123456'

''.join部分意味着将所有结果字符组合在一起,中间没有任何字符。然后它的其余部分是列表理解,其中(正如您可能猜到的)我们只获取字符串中与条件isdigit匹配的部分。

票数 118
EN

Stack Overflow用户

发布于 2009-09-07 03:01:28

这应该适用于Python2中的字符串和unicode对象,以及Python3中的字符串和字节:

代码语言:javascript
复制
# 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))
票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1249388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档