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

如何编写仅当数字含小数点时允许前导零的正则表达式

符合需求的正则表达式实现

最终正则

^-?(0|[1-9]\d*|0?\.\d+|[1-9]\d*\.\d+)$

Python 调用示例

import re
# 校验示例
is_valid = bool(re.match(r'^-?(0|[1-9]\d*|0?\.\d+|[1-9]\d*\.\d+)$', "0.123"))

规则拆解

  • -?:匹配可选的负号,支持负数校验
  • 0:匹配单独的整数0
  • [1-9]\d*:匹配无小数点的整数,要求首字符非0,杜绝01、001这类带前导零的非法整数
  • 0?\.\d+:匹配以.或0.开头的合法小数,覆盖.01、0.01这类允许前导零的小数场景
  • [1-9]\d*\.\d+:匹配非0开头的普通小数,如1.2、123.45,同时过滤001.1、00.1这类前导零超过1个的非法小数

校验结果验证

匹配通过场景

  • 0.01
  • 1
  • 1.2
  • .01
  • -0.1
  • -1

不匹配场景

  • 1.2.3
  • 01
  • 001.1
  • 00.1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 22:06:06