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

请求文件名重命名正则表达式:移除末尾段前置零

批量重命名:移除文件名最后段的前置零并保留两位有效数字

PowerShell 实现

直接遍历目标文件,用正则匹配并格式化数字:

Get-ChildItem -Filter "*_*[A-Z]0[0-9][0-9]" | ForEach-Object {
    $newName = $_.Name -replace '^(.*[A-Z])(\d{3})$', {
        $matches[1] + ([int]$matches[2] | ForEach-Object { "{0:D2}" -f $_ })
    }
    Rename-Item -Path $_.FullName -NewName $newName
}

逻辑:捕获文件名中字母前缀(比如A/B)和后面的三位数字,把数字转成整数自动去前置零,再格式化为两位数字(不足两位补零)。

Python 实现

适合跨平台使用,代码可读性强:

import os
import re

# 匹配最后一段为字母+三位数字的文件名
file_pattern = re.compile(r'^(.*[A-Z])(\d{3})$')

for filename in os.listdir('.'):
    match_result = file_pattern.match(filename)
    if match_result:
        prefix_part = match_result.group(1)
        num_part = int(match_result.group(2))
        # 格式化数字为两位,自动补零或去多余前置零
        new_filename = f"{prefix_part}{num_part:02d}"
        os.rename(filename, new_filename)

Bash 实现(Linux/macOS)

用Perl版本的rename命令快速处理:

rename 's/(.*[A-Z])(\d{3})/$1 . sprintf("%02d", $2)/e' *_[A-Z]0[0-9][0-9]

逻辑:通过正则捕获字母前缀和三位数字,执行Perl代码将数字格式化为两位后替换。

如果你的文件名前缀规则有变化,只需要调整正则中捕获前缀的部分即可,核心都是把最后三位数字转成两位有效数字(去多余前置零,不足两位补零)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:07:33