使用价格通用解决方案从字符串中删除货币符号和文字

coo*_*sus 1 python regex string currency converter

我有这样的例子:

10.99美元

LIR10.99

10.99美元

$ 10.99

因此输入数据可以是任何'symbolfloat'或'symbol float'.

我做了这样的事情:

float((str(param[2]).translate(None, '$USDLIR')))
Run Code Online (Sandbox Code Playgroud)

但它可以是任何世界货币,因此它必须是通用转换器.

Aar*_*lla 5

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

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)
Run Code Online (Sandbox Code Playgroud)

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

  • 请不要将变量命名为“input”,这会吓到我的猫。 (4认同)

tia*_*ago 5

您可以删除除数字以外的所有内容(包括逗号或小数点):

import re
trim = re.compile(r'[^\d.,]+')
mystring = 'USD 10.99'
result = trim.sub('', mystring)
print(result)
# '10.99'
Run Code Online (Sandbox Code Playgroud)