我正在尝试获取具有以下结构的值列表:单词数字数字:数字的一部分正好有两个数字,第二个部分具有浮点值。这是一个例子
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 ]
谢谢。
答案 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)