Python:验证字符串是否表示有效的美国货币值?

2024-06-17 09:56:22 发布

您现在位置:Python中文网/ 问答频道 /正文

如何验证字符串是否表示有效的美国货币值

字符串可以严格由数字组成,也可以选择使用美元符号、逗号等

上下文:我希望验证字符串是否为正确的美元值,然后在删除或以其他方式处理非数字字符后将其转换为数字


Tags: 字符串方式货币符号数字字符逗号
1条回答
网友
1楼 · 发布于 2024-06-17 09:56:22

正则表达式

示例:\$?(-?(\d+[,.])*\d+)

import re
re.match("\$?(-?(\d+[,.])*\d+)", "$-12,000.01")  # match
re.match("\$?(-?(\d+[,.])*\d+)", "$-12,000.01").group(1)  # extract matched value
>>> '-12,000.01'
re.sub('[,$]', '', '$-12,000.01')                  # remove comma and dollar sign
>>> '-12000.01'
float(re.sub('[,$]', '', '$-12,000.01'))           # convert to float if the result doesn't contain any special character such as comma
>>> -12000.01

如果数据集中有任何事例,请向正则表达式添加更多事例

可能存在许多无效的边缘案例,例如13.000000

此正则表达式将修复它:\$?(-?\d*(\d+,)*\.?\d+)

因此,根据需要添加尽可能多的案例

相关问题 更多 >