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

新手上路,请多包涵

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

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

阅读 357
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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题