【问题标题】:Extract numbers from string without any spaces [duplicate]从没有任何空格的字符串中提取数字[重复]
【发布时间】:2017-04-07 20:38:12
【问题描述】:

我有像 6M1D14M 这样的字符串。我想从这个字符串中提取所有数字。类似的东西:

[6, 1, 14]

我该怎么做?字符串的长度可以是任意的。介于两者之间的数字也可以是任意长度。

我尝试了this 方法,但无法按照我需要的方式拆分字符串。

【问题讨论】:

  • 好的,这就是你想要的。但是你为此做了什么? SO 不适合“为我做这件事”
  • 你是对的。我正在尝试这种方法:stackoverflow.com/questions/4289331/… 但无法按照我需要的方式拆分字符串。
  • 您应该在问题中提及您在代码中尝试了什么。我们喜欢显示用户努力的问题。然后我们可以一起修复您的代码。即使你会知道更好的方法来做到这一点
  • 感谢您的建议。我相信这个问题不是重复的,因为另一个问题假设有空格。如何调整代码对某些人来说可能很明显,但遗憾的是对我来说不是。
  • 它是重复的。因为无论您是否将空格、字符或拉丁语中的某些内容作为字符串的一部分,都无关紧要。你想要的只是从字符串中提取数字。有很多方法可以做这些已经提到的作为此处相关问题的答案

标签: python regex string numbers


【解决方案1】:

使用findAll 和正则表达式\d+

>>> import re
>>> re.findall(r"\d+", "6M1D14M")
['6', '1', '14']

为了转换成整数列表,只需迭代和解析它们。

>>> import re
>>> [int(num) for num in re.findall(r"\d+", "6M1D14M")]
[6, 1, 14]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-25
    • 2015-05-14
    • 2018-12-14
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    相关资源
    最近更新 更多