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

如何实现去除前导双零、为两位数补前导零的逻辑?

实现去除前导连续两个零并为两位数添加前导零的方法

方法一:分步字符串处理

假设输入为数字字符串,分两步完成需求:

  1. 移除开头连续两个零:判断字符串是否以00开头,若是则截取从第三个字符开始的内容
  2. 为两位数添加前导零:检查处理后的字符串长度,若为2则在开头拼接一个零

示例代码:

def process_num_str(s):
    # 去除前导连续两个零
    if s.startswith('00'):
        s = s[2:]
    # 为两位数添加前导零
    if len(s) == 2:
        s = '0' + s
    return s

# 测试用例
print(process_num_str('00123'))  # 输出 '123'
print(process_num_str('0012'))   # 输出 '012'
print(process_num_str('12'))     # 输出 '012'
print(process_num_str('005'))    # 输出 '5'

方法二:正则表达式一次性处理

用正则匹配实现两步逻辑:

  • 匹配字符串开头的00并替换为空,完成去前导双零操作
  • 匹配单独的两位数,替换为带前导零的三位字符串

示例代码:

import re

def process_num_str(s):
    s = re.sub(r'^00', '', s)
    s = re.sub(r'^\d{2}$', r'0\1', s)
    return s

# 测试用例
print(process_num_str('00123'))  # 输出 '123'
print(process_num_str('0012'))   # 输出 '012'
print(process_num_str('12'))     # 输出 '012'

如果你的实际需求是去除所有前导零后,将数值格式化为至少两位(不足补零),可以使用以下代码:

def process_num_str(s):
    # 去除所有前导零,空字符串则替换为'0'
    s = s.lstrip('0') or '0'
    # 格式化为至少两位,不足补前导零
    return s.zfill(2)

# 测试用例
print(process_num_str('00123'))  # 输出 '123'
print(process_num_str('005'))    # 输出 '05'
print(process_num_str('5'))      # 输出 '05'

你可以根据实际场景选择对应的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:10:35