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

如何用Python正则表达式去除字符串开头的所有零?

去除字符串开头所有前导零的正确方法

要解决开头多个零的去除问题,你需要用正则表达式精准匹配字符串开头的连续零,而非替换所有零或单个零。

正确的正则表达式写法

使用 re.sub(r'^0+', '', number):

  • ^:锚定字符串的起始位置,确保只匹配开头的零
  • 0+:匹配一个或多个连续的零
  • 替换为空字符串后,就能一次性去掉所有开头的零,同时保留中间和末尾的零

实际效果示例

  • 输入 "0005855048560" → 输出 "5855048560"
  • 输入 "01568460144" → 输出 "1568460144"

处理特殊情况(全零字符串)

如果遇到全是零的字符串(比如 "0000"),直接替换会得到空字符串。如果需要保留一个零,可以加个简单判断:

import re

def remove_leading_zeros(num_str):
    result = re.sub(r'^0+', '', num_str)
    return result if result else "0"

# 测试示例
print(remove_leading_zeros("0000"))  # 输出 "0"
print(remove_leading_zeros("1230"))  # 输出 "1230"

为什么之前的写法不对?

你之前用的 re.sub(r'0','',number) 会替换字符串里所有的零,完全不符合需求;如果是 re.sub(r'0','',number, 1) 也只会替换第一个零,解决不了多个前导零的问题。只有锚定开头+匹配连续零的写法才精准符合你的要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 02:46:07