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

如何用Regex匹配小数点前无数字的十进制数并补前导零

匹配无前导数字的小数并添加前导零

要只捕获小数点前没有数字的小数(比如.5、.8这类),你需要用负向后瞻断言来排除前面有数字的情况,具体方案如下:

正确正则表达式

(?<!\d)\.(\d+)

替换规则

将匹配到的内容替换为 0.$1(其中$1对应捕获到的小数点后的数字部分)

示例代码(Python)

import re

original_text = """The dimensions of the object-1 is: 1.4 meters wide, .5 meters long, 5.6 meters high
The dimensions of the object-2 is: .8 meters wide, .11 meters long, 0.6 meters high"""

processed_text = re.sub(r'(?<!\d)\.(\d+)', r'0.\1', original_text)
print(processed_text)

正则说明

  • (?<!\d):负向后瞻,确保小数点(\.)的前一个字符不是数字,完美排除了1.4、5.6这类前面带数字的小数
  • \.:匹配小数点本身
  • (\d+):捕获小数点后的所有数字,替换时用来保留原数字部分

为什么你之前的正则不行?

你写的(\d+)?\.(\d+)中,(\d+)?是可选的数字匹配,所以会同时匹配有数字和无数字的小数,无法区分出仅小数点前无数字的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:52:16