【问题标题】:(Python) How to extract numbers from a string (without regex)? [duplicate](Python)如何从字符串中提取数字(没有正则表达式)? [复制]
【发布时间】:2021-10-09 01:36:01
【问题描述】:

我想提取字符串中包含的所有数字。我不能使用正则表达式,还有其他方法吗?

例子:

minput = "BLP45PP32AMPY"

结果:

4532

【问题讨论】:

  • 我很好奇你为什么不能使用正则表达式。 re 模块是内置的。
  • 我正在一个网站上写一个不能导入其他库的程序。 (我觉得可能是编译器的问题)我只能使用基本的命令。
  • 不确定您所说的“其他库”是什么意思。如果这是您必须单独安装的东西,我会理解,但 re 模块是 Python 的一部分。 import re 应该和 import sys 一样好用。
  • 哦!它是可用的。我之前尝试导入 pandas/numpy 并遇到了问题。所以我避免所有进口。非常感谢。

标签: python string


【解决方案1】:
final_integer = int("".join([ i for i in minput if i.isdigit()]))

【讨论】:

  • 有趣的是,似乎有两个字符串函数做同样的事情。有点违反PEP 20 -- The Zen of Python 的规则——“应该有一个——最好只有一个——明显的方法。”
  • 它们并不完全相同 - 请参阅 here
  • 谢谢@sj95126,这太棒了。我仍然说它打破了 Python 的禅宗。
【解决方案2】:

你可以使用str.isnumeric:

minput = "BLP45PP32AMPY"

number = int("".join(ch for ch in minput if ch.isnumeric()))
print(number)

打印:

4532

【讨论】:

  • 哦,这对我有用。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
  • 1970-01-01
  • 2020-09-15
  • 2011-05-10
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多