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

时间:2019-06-21 15:49:38

标签: 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 23,456,789, 
efgh 01 23,456,789 ]

谢谢。

2 个答案:

答案 0 :(得分:2)

正如评论中提到的 @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')]

答案 1 :(得分:1)

请考虑以下解决方案:

import re

data = 'abcd 01 23,456,789 efgh 01 23,456,789'
pattern = re.compile(r'[a-zá-úA-z]+\s[0-9]{2}\s[0-9,]+')
matches = re.findall(pattern, data)