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

如何使用正则表达式匹配月年格式数据并实现仅年份补零处理

解决方案

1. 正则适配1/2位月份

你原来的正则\d\-\d\d仅匹配1位数字的月份,把月份的匹配规则改为\d{1,2}即可同时适配1位和2位数字的月份,完整正则可以写为r'^(\d{1,2})-(\d{2})$',首尾的^和$用于限定整个字符串都符合格式,避免部分匹配的异常。

2. 无需split的正则补零方案

可以用正则捕获组直接提取月份和年份,通过re.sub一步完成补零替换,不需要拆分字符串,示例代码如下:

import re

# 预编译正则,提升批量处理效率
date_pattern = re.compile(r'^(\d{1,2})-(\d{2})$')

# 方法1:直接替换,适合确定输入符合格式的场景
data_example1 = "1-19"
cleaned1 = date_pattern.sub(r'\1-00\2', data_example1)
print(cleaned1) # 输出:1-0019

data_example2 = "12-21"
cleaned2 = date_pattern.sub(r'\1-00\2', data_example2)
print(cleaned2) # 输出:12-0021

# 方法2:先校验匹配再处理,适合输入格式不确定的场景
def format_date(raw_date):
    match_result = date_pattern.match(raw_date)
    if not match_result:
        # 格式不匹配时可自定义返回逻辑,这里直接返回原字符串
        return raw_date
    return f"{match_result.group(1)}-00{match_result.group(2)}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:45:02