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

新手上路,请多包涵

我们如何从 Python 中的字符串中删除所有非数字字符?

原文由 grizzley 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 361
2 个回答
>>> import re
>>> re.sub("[^0-9]", "", "sdkjh987978asd098as0980a98sd")
'987978098098098'

原文由 Ned Batchelder 发布,翻译遵循 CC BY-SA 2.5 许可协议

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

 >>> ''.join(c for c in "abc123def456" if c.isdigit())
'123456'

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

原文由 Mark Rushakoff 发布,翻译遵循 CC BY-SA 2.5 许可协议

推荐问题