如何使用Python去除数字间空格并规范小数格式
实现代码
import re my_string = "take take , mouth ? 1 unit 1 2 3 1 mg 0 . 1 mg 1 . 1 mg 1 / 2 take . 5 unit and 00 . 5 unit" # 第一步:删除数字、小数点、斜杠之间的所有空格 step1 = re.sub(r'(?<=[\d./])\s+(?=[\d./])', '', my_string) # 第二步:处理小数前导零(补全缺失的、删除多余的) result = re.sub( r'(?<!\d)\.(\d+)|0+(\.\d+)', lambda m: f'0.{m.group(1)}' if m.group(1) else m.group(2), step1 ) print(result)
输出结果
take take , mouth ? 1 unit 1231 mg 0.1 mg 1.1 mg 1/2 take 0.5 unit and 0.5 unit
逻辑说明
- 第一步的正则匹配「前后均为数字、小数点、斜杠」的空格,直接删除即可合并零散的数字、去掉符号周围的空格
- 第二步的正则同时匹配两种异常小数格式:
- 没有前导零的小数(如
.5),补上前导零转为0.5 - 有多余前导零的小数(如
00.5),删除多余前导零转为0.5
- 没有前导零的小数(如
内容的提问来源于stack exchange,提问作者Droid-Bird
相关产品推荐
相关产品推荐

