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

如何匹配小数点前仅2位、后仅1或2位的数字?

匹配特定格式数字的正则表达式方案

刚好碰到过类似的需求,我来给你梳理一下怎么写这个正则:

首先明确你的核心规则:

  • 整个字符串必须是小数点前恰好2位数字(不能多也不能少,像090这种三位直接排除)
  • 小数点后必须是1位或2位数字
  • 小数点前不能有前导零(比如09.59这种带前导零的两位也不匹配,毕竟你举的090.59是三位被排除,推测你也不想接受前导零的两位)

最终正则表达式

^[1-9]\d\.\d{1,2}$

规则拆解

让我给你拆解开每个部分的作用:

  • ^:匹配字符串的开头,确保前面没有多余字符
  • [1-9]:匹配小数点前的第一位数字,只能是1-9,杜绝前导零
  • \d:匹配小数点前的第二位数字,可以是0-9
  • \.:匹配小数点本身(因为.在正则里是通配符,所以要加转义符\)
  • \d{1,2}:匹配小数点后1位或2位数字
  • $:匹配字符串的结尾,确保后面没有多余字符

测试用例验证

  • ✅ 匹配:90.59、90.5、12.3、99.99
  • ❌ 不匹配:090.59(小数点前三位)、9.59(小数点前一位)、09.59(前导零)、90.(小数点后无数字)、90.567(小数点后三位)

如果你的需求允许小数点前有前导零(比如05.59这种也可以接受),那只需要把正则改成:

^\d{2}\.\d{1,2}$

这个版本会匹配05.59,但依然会排除090.59这种三位前缀的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:54:21