在一段文字中提取金额
如:本次交易金额为 123USD。
当然,金额有很多表达形式,包括是否带小数点,是否带千分位等,总结下来大致有以下几种情况(币制可能在前也可能在后)
a='金额是JPY37,200,000.59' b='金额是USD37,280.59' c='金额为23569RMB' d='价格是23000.59EUR' e='总价是2GBP'
将金额切分为头、中、尾三部分,分别总结特点,考虑如下的正则表达式:
pattern=re.compile(r'(?P<price>\d+(,\d{3})*(\.\d+)?)')
测试: import re import pandas as pd a='金额是JPY37,200,000.59' b='金额是USD37,280.59' c='金额为23569RMB' d='价格是23000.59EUR' e='总价是2GBP' lis=[a,b,c,d,e] print(lis) pattern=re.compile(r'(?P<price>\d+(,\d{3})*(\.\d+)?)') for item in lis: res=pattern.search(item) if res!=None: print(res.group('price')) else: print(item,"no match")
测试结果:
37,200,000.59
37,280.59
23569
23000.59
2
Process finished with exit code 0