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

如何用.NET正则匹配文件名中数字前的前置零(PowerRename适用)

解决PowerRename中删除数字前置零的.NET正则表达式问题

需求回顾

需要删除文件名中数字序列的前置冗余零,规则如下:

  • 全零序列(如00000.jpg)保留最后一个零,结果为0.jpg
  • 含非零数字的序列(如00010.jpg)删除所有前置零,结果为10.jpg
  • 带前缀的文件名(如img.00002.jpg)仅删除前缀后的前置零,结果为img.2.jpg
  • 无前置零的文件名(如12345.jpg)保持不变

正确的正则表达式(适用于.NET规范)

在PowerRename的「查找内容」中输入以下正则,「替换为」留空:

(?<=^|\D)0+(?=[1-9])|(?<=^|\D)0+(?=0(\.|$))

正则拆解

该正则通过两个分支匹配所有需要删除的冗余零:

  1. 第一分支:(?<=^|\D)0+(?=[1-9])
    • (?<=^|\D):反向预查,确保匹配的零位于文件名开头,或前面是非数字字符(避免匹配数字中间的零)
    • 0+:匹配一个或多个连续的零
    • (?=[1-9]):正向预查,确保零后面跟着非零数字(针对含非零的数字序列)
  2. 第二分支:(?<=^|\D)0+(?=0(\.|$))
    • 前半部分同第一分支,用于定位全零序列的起始位置
    • (?=0(\.|$)):正向预查,确保零后面跟着最后一个零,且之后是小数点或文件名结尾(针对全零序列,仅保留最后一个零)

PowerRename设置步骤

  1. 选中需要重命名的文件,右键选择「PowerRename」
  2. 勾选「使用正则表达式」选项
  3. 在「查找内容」框粘贴上述正则,「替换为」框保持空白
  4. 查看预览确认效果,无误后点击「重命名」

之前尝试的正则问题分析

  • [0]{2}:仅匹配固定长度的连续两个零,无法适配不同长度的前置零,导致部分零残留(如00010.jpg变成010.jpg)
  • [^0][0-9]*:匹配逻辑完全偏离需求,会选中非零字符开头的数字序列,导致文件名被错误截断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 02:25:17