使用价格通用解决方案从字符串中删除货币符号和文字 [英] Remove currency symbols and literals from a string with a price universal solution

查看:75
本文介绍了使用价格通用解决方案从字符串中删除货币符号和文字的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这样的例子:


10.99美元

USD 10.99

LIR10.99

$ 10.99

$ 10.99

所以输入数据可以是任何'symbolfloat'或'symbol float '。

So the input data may be any 'symbolfloat' or 'symbol float'.

我做了这样的事情:

float((str(param[2]).translate(None, '$USDLIR')))

但是它可以是任何世界货币,因此它必须是

But it can be any world currency, so it must be a universal converter.

推荐答案

从字符串中删除不是数字或小数点的任何内容:

Remove anything from the string which isn't a digit or a decimal point:

import re
import locale
decimal_point_char = locale.localeconv()['decimal_point']
clean = re.sub(r'[^0-9'+decimal_point_char+r']+', '', str(param[2]))
value = float(clean)

这还将处理分组( $ 1,000.00 )和不同的区域设置。

That will also handle grouping ($ 1,000.00) and different locales.

这篇关于使用价格通用解决方案从字符串中删除货币符号和文字的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆