在python中如何将字母字符串拆分为两个数字和一个数字?

在python中如何将字母字符串拆分为两个数字和一个数字?,python,regex,Python,Regex,我试图得到一个具有以下结构的值列表:单词数字数字数字的一部分正好有两个数字,第二部分有浮点值。这里有一个例子 abcd 01 23,456,789 efgh 01 23,456,789 这是我目前的模式: re.findall("([a-zá-úA-Z]+)([0-9,.][0-9,.])([0-9,.]+)" 但它不起作用。给我[] 结果将是: 谢谢。考虑以下解决方案: 进口稀土 数据='abcd 01 23456789 efgh 01 23456789' pattern=re.compi

我试图得到一个具有以下结构的值列表:单词数字数字数字的一部分正好有两个数字,第二部分有浮点值。这里有一个例子

abcd 01 23,456,789 efgh 01 23,456,789
这是我目前的模式:

re.findall("([a-zá-úA-Z]+)([0-9,.][0-9,.])([0-9,.]+)"
但它不起作用。给我[]

结果将是:


谢谢。

考虑以下解决方案:

进口稀土 数据='abcd 01 23456789 efgh 01 23456789' pattern=re.compiler'[a-zá-a-z]+\s[0-9]{2}\s[0-9,]+' matches=re.findallpattern,数据 正如@Scott Hunter在评论中提到的,您忘记了空格。只需添加它们就可以完成任务

下面的正则表达式不假设固定长度,它更健壮一些

import re

data = "abcd 01 23,456,789 efgh 01 23,456,789"

output = re.findall("([a-zá-úA-Z]+)\s(\d+)\s(\d+[,]\d+[,]\d+)", data)

print(output)
# [('abcd', '01', '23,456,789'), ('efgh', '01', '23,456,789')]

第一个数字正好有两个数字:请解释这是怎么可能的。你的re没有考虑事物之间的空间。@ScottHunter编辑。谢谢。这假设问题中没有说明的东西的大小。第一个数字正好有两个数字@苏格兰人
import re

data = "abcd 01 23,456,789 efgh 01 23,456,789"

output = re.findall("([a-zá-úA-Z]+)\s(\d+)\s(\d+[,]\d+[,]\d+)", data)

print(output)
# [('abcd', '01', '23,456,789'), ('efgh', '01', '23,456,789')]