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



我正在尝试获取具有以下结构的值列表: 字数 数字的一部分正好有两个数字,第二个有浮点值。这是一个例子

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 ]

谢谢。

正如@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')]

请考虑以下解决方案:

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)

相关内容

  • 没有找到相关文章

最新更新