从没有空格的字符串中提取数字

3

我有像6M1D14M这样的字符串,我想从中提取所有的数字。例如:

[6, 1, 14]

我该如何做呢?字符串的长度可以是任意的。中间存在的数字也可能是任意长度。

我尝试过这个方法,但无法按照我需要的方式分割字符串。


1
好的,这是你想要的。但你为此尝试了什么?SO不是用来“替我做这个”的。 - Moinuddin Quadri
你说得对。我尝试了这种方法:https://dev59.com/K2855IYBdhLWcg3wiU31 但是无法按照我需要的方式拆分字符串。 - Swetabh
你应该在问题中提及你尝试过的方法和代码。我们喜欢看到用户付出了努力的问题。这样我们才能一起修复你的代码。甚至你也会学到更好的解决方法。 - Moinuddin Quadri
感谢建议。我认为这个问题不是重复的,因为另一个问题假设有空格。如何调整代码可能对一些人来说很明显,但对我来说不是。 - Swetabh
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Moinuddin Quadri
@MoinuddinQuadri 我不认为这是重复的,你提到的问题已经有了标记答案,但对我没有用。然而,这里的解决方案有效。 - Khalil Al Hooti
1个回答

10

使用 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]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接