嗨,我想从文字中分析价格。但是我要解析的价格必须以美元符号开头,但在存储价格时不包括该美元符号和逗号。
例如, 如果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])
工作正常。但是,它看起来并不完整也不专业。有什么办法可以实现我的意图吗?
请帮助我!谢谢!
答案 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),但是您可以很容易地在末尾添加该模式