从 Python 中的字符串中提取货币金额

Joh*_*uki 4 python

我正在制作一个从字符串中获取货币并将其转换为其他货币的程序。例如,如果字符串是'the car cost me $13,250'我需要获取$13250。我已经有了这个正则表达式(?:\£|\$|\€)(?:.{1,}),但是很有可能字符串可能有多个价格,所有价格都使用不同的货币。这是我不知道如何有效地做的事情。

我需要知道的是如何从字符串中提取所有价格。我认为即使正则表达式只是返回类似的东西['$12,250,000','£14,500,123','£120.25']也没关系,因为我可以使用这样的东西来获取数字:

prices = ['$12,250','£14,500','£120']
for value in prices:
    value.replace(',','')
Run Code Online (Sandbox Code Playgroud)

和这样的事情来获得货币:

for c in prices:
     currency = c[0]
Run Code Online (Sandbox Code Playgroud)

还有一个问题,价格可能不是整数,可能是$12.54. 关于如何获得初始价格清单的任何帮助都会很棒。

bph*_*phi 7

此正则表达式将更适合您的目的:

(?:[\£\$\€]{1}[,\d]+.?\d*)

在这里尝试一下

然后作为 sainoba 笔记,您可以使用re.findallre.finditer来获取匹配项。

然后,您可以从第一个字符中提取货币,删除逗号,最后根据需要拆分小数点。