You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中使用正则匹配带千位分隔符与小数分隔符的价格

问题原因分析
  • 正则中的.未转义:.在正则语法中属于通配符,可匹配任意字符,你原本想匹配作为千位分隔符的.,实际运行时会匹配到数字、逗号等其他内容,直接导致分组捕获逻辑错位
  • 分组规则固定僵化:原正则写死了3个数字分组、2个分隔符的结构,只能适配带有2个千位分隔符的百万级金额,低于百万级的金额仅带有1个千位分隔符,匹配时就会出现偏差,最终导致提取结果丢失位数
  • 原代码存在语法误用:print = xxx的写法会覆盖Python内置的print打印函数,导致后续无法正常调用打印功能
优化实现方案

无需手动拆分多分组捕获,直接匹配所有符合千位分隔规则的整数金额部分,再统一移除千位分隔符即可,可兼容所有量级的金额提取:

import re

# 测试文本示例
line = "Debt 1 of 2 for an amount of: $ 58.610,00, Unpaid"
# 正则适配所有带千位分隔符、小数固定为,00的金额格式
regex = r"\$ ((?:\d{1,3}\.)*\d{3}),00"
match = re.search(regex, line)
if match:
    # 移除千位分隔符的.,拼接$前缀得到最终结果
    amount = "$" + match.group(1).replace(".", "")
    print(amount)

效果验证

  • 示例输入$ 58.610,00,输出为$58610,符合预期要求
  • 百万级输入$ 1.234.567,00,输出为$1234567
  • 千级输入$ 1.234,00,输出为$1234
    全量级金额均可正常提取,无需额外调整规则。

内容的提问来源于stack exchange,提问作者Diego Ignacio Ortiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 17:54:02