【发布时间】:2021-12-14 18:48:36
【问题描述】:
我想知道如何分隔这个字符串:
"Venda R$ 3.780.000,00 Aluguel Condomínio R$ 1.980,00 IPTU R$ 7.990,00 Resumo de Custo"
所以它可以是:3780000、1980 和 7990。我是正则表达式的新手,所以详细的解释会很有帮助。
【问题讨论】:
标签: python python-3.x python-re
我想知道如何分隔这个字符串:
"Venda R$ 3.780.000,00 Aluguel Condomínio R$ 1.980,00 IPTU R$ 7.990,00 Resumo de Custo"
所以它可以是:3780000、1980 和 7990。我是正则表达式的新手,所以详细的解释会很有帮助。
【问题讨论】:
标签: python python-3.x python-re
你需要一个正则表达式来匹配
[\d.] 数字或点
[\d.]{3,} 超过 3 个字符
然后去掉点并转换为int
import re
values = "Venda R$ 3.780.000,00 Aluguel Condomínio R$ 1.980,00 IPTU R$ 7.990,00 Resumo de Custo"
result = [int(x.replace(".", "")) for x in re.findall(r"[\d.]{3,}", values)]
print(result) # [3780000, 1980, 7990]
【讨论】:
我给你一个总体框架,然后指出一些问题。
您首先要用文字描述您想要什么。您需要一个数字,后跟一组数字或逗号或句点,以数字结尾。那是:
import re
srch = "Venda R$ 3.780.000,00 Aluguel Condominio R$ 1.980,00 IPTU R$ 7.990,00 Resumo de Custo"
f = re.findall( r"\d[0-9.,]*\d", srch )
print(f)
这给出了:
['3.780.000,00', '1.980,00', '7.990,00']
如果需要,您可以将其转换为数字,去掉句点并去掉美分。
【讨论】: