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

如何使用正则表达式提取含多逗号和小数点的字符串中的数字

解决方案:提取带逗号的格式化数字

原正则表达式\d+\.*\d+仅能匹配连续数字及可选小数点,无法处理作为千位分隔符的逗号,导致提取结果被拆分为多个片段,不符合需求。

修改后的代码

import re
b = "$2,01,468.75"
# 匹配$符号后的带千位分隔符和小数的数字
c = re.findall("(?<=\$)\d+(?:,\d+)*\.\d+", b)
print(c)  # 输出: ['2,01,468.75']

正则表达式说明

  • (?<=\$):正向零宽断言,确保目标内容前是$符号,精准定位需要提取的数字部分
  • \d+:匹配数字的起始部分(至少1位数字)
  • (?:,\d+)*:非捕获分组,匹配0次或多次“逗号+数字”的组合,兼容多段千位分隔符
  • \.\d+:匹配小数点及后续的小数部分

如果需要兼容无小数的带逗号数字(如$1,234),可以改用更通用的正则:

c = re.findall("(?<=\$)\d+(?:,\d+)*(\.\d+)?", b)

内容的提问来源于stack exchange,提问作者Ajay

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:32:03