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

求匹配1-24(支持可选小数部分)的正确正则表达式

嘿,我瞅了下你的问题,原来的正则确实有个小漏洞——那个[12]\d的片段会把25到29的数值也给匹配进去,这就是为啥你会发现不该命中的数也被捞出来了。咱们来调整一下,给你个精准匹配1-24(支持可选小数)的正则:

正确的正则表达式
^([1-9](\.\d+)?|1\d(\.\d+)?|2[0-3](\.\d+)?|24(\.0+)?)$

为啥这个能行?我给你拆解开说:

  • [1-9](\.\d+)?:负责匹配1到9的整数,或者带任意小数的1-9(比如1.0、9.999都没问题)
  • 1\d(\.\d+)?:匹配10到19的整数,以及带小数的10-19(像12.5、19.00都算合法)
  • 2[0-3](\.\d+)?:覆盖20到23的整数和带小数的情况(比如20.1、23.9都符合)
  • 24(\.0+)?:专门处理24这个边界值——只能是24本身,或者24.0、24.000这类小数,拒绝24.1及以上的数值

验证下边界情况:

✅ 会匹配的合法值:1、5、10、23、24、1.23、15.0、23.5、24.00
❌ 会拒绝的非法值:0、25、29、24.1、0.5、-1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:31:56