在一段文字中提取金额
如:本次交易金额为 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

文章探讨了如何使用Python的re模块编写的正则表达式来提取各种格式的金额,包括带有币种、逗号分隔的数字和小数点。通过示例代码展示了如何从包含金额信息的文本中匹配和提取数值。
523

被折叠的 条评论
为什么被折叠?



