有关解析价格和美元符号的问题

时间:2019-06-29 16:53:24

标签: python regex

嗨,我想从文字中分析价格。但是我要解析的价格必须以美元符号开头,但在存储价格时不包括该美元符号和逗号。

例如, 如果Price ='$ 15,000',我只想要'15000'。

所以我在python中实现了如下的价格解析代码。

prices = re.findall(r'([$])+(\d{1,4})+([,.])?(\d{1,3})',text)
for price in prices:
    print(price[1]+price[3])

工作正常。但是,它看起来并不完整也不专业。有什么办法可以实现我的意图吗?

请帮助我!谢谢!

1 个答案:

答案 0 :(得分:0)

这是您想要的吗?

prices = re.findall(r”[$](\d{0,3})(?:[,.]?(\d{3}))*”, text)
for price in prices:
    print(‘’.join(map(str, price)))

(基本上,先寻找一个美元符号,然后最多3位,然后是一个或多个非捕获组的分隔符和一组捕获的3位数字)。这不会在数字后面加上小数点(例如$ 160.15),但是您可以很容易地在末尾添加该模式