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

如何编写正则匹配小数点前最多3位、小数点后至少2位的数字

正则表达式调整方案

问题原因

你当前使用的正则\b\d{1,3}\.\d{2}?存在两处问题:

  • \d{2}?中的?是惰性匹配符,会让匹配逻辑只取最少满足条件的2位小数,不会继续向后匹配
  • 没有限定匹配小数点后所有剩余的数字,因此只会保留前两位小数结果

正确正则写法

你需要的匹配规则可通过\b\d{1,3}\.\d{2,}\b实现,其中:

  • \d{1,3}:匹配小数点前1到3位数字,过滤掉小数点前超过3位的非法值
  • \.:匹配小数点本身
  • \d{2,}:匹配小数点后至少2位数字,贪婪模式会自动匹配所有后续连续数字,覆盖你需要的「小数点后2位及以上」的要求
  • 首尾的\b为单词边界,避免匹配到嵌入在其他字符串中的不完整数字

修改后代码示例

import re

text = "212.12454"
result = re.search(r"\b\d{1,3}\.\d{2,}\b", text)
print(result.group())

运行输出

212.12454

验证效果

  • 合法值可完整匹配:22.23566556、123.123、1.00都能正常匹配完整内容
  • 非法值自动过滤:4564.1546(小数点前4位)、123.1(小数点后仅1位)都不会被匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:06:08