从没有任何空格的字符串中提取数字[重复]
Posted
技术标签:
【中文标题】从没有任何空格的字符串中提取数字[重复]【英文标题】:Extract numbers from string without any spaces [duplicate] 【发布时间】:2017-04-07 20:38:12 【问题描述】:我有像 6M1D14M 这样的字符串。我想从这个字符串中提取所有数字。类似的东西:
[6, 1, 14]
我该怎么做?字符串的长度可以是任意的。介于两者之间的数字也可以是任意长度。
我尝试了this 方法,但无法按照我需要的方式拆分字符串。
【问题讨论】:
好的,这就是你想要的。但是你为此做了什么? SO 不适合“为我做这件事” 你是对的。我正在尝试这种方法:***.com/questions/4289331/… 但无法按照我需要的方式拆分字符串。 您应该在问题中提及您在代码中尝试了什么。我们喜欢显示用户努力的问题。然后我们可以一起修复您的代码。即使你会知道更好的方法来做到这一点 感谢您的建议。我相信这个问题不是重复的,因为另一个问题假设有空格。如何调整代码对某些人来说可能很明显,但遗憾的是对我来说不是。 它是重复的。因为无论您是否将空格、字符或拉丁语中的某些内容作为字符串的一部分,都无关紧要。你想要的只是从字符串中提取数字。有很多方法可以做这些已经提到的作为此处相关问题的答案 【参考方案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]
【讨论】:
以上是关于从没有任何空格的字符串中提取数字[重复]的主要内容,如果未能解决你的问题,请参考以下文章