正则查找结构
IMG_1234.jpg 与 IMG_5678.jpg 数字不同,但都有“IMG_ 加数字”的结构。
Only My Kit 对不含扩展名的基础名称应用 JavaScript 全局正则。
先处理前缀、空白与末尾编号
删除开头的 IMG_
更改前
IMG_001.jpg
IMG_002.jpg
IMG_003.jpgPattern
^IMG_Replace
空字符串更改后
001.jpg
002.jpg
003.jpg^ 表示不含扩展名的文件名开头。
删除 Screenshot_ 前缀
更改前
Screenshot_2026-08-17.png
Screenshot_2026-08-18.pngPattern
^Screenshot_Replace
空字符串更改后
2026-08-17.png
2026-08-18.png只有以此前缀开头的文件会改变。
把空白改为下划线
更改前
summer vacation 001.jpg
summer vacation 002.jpgPattern
\s+Replace
_更改后
summer_vacation_001.jpg
summer_vacation_002.jpg\s+ 匹配一个或多个连续空白。
删除末尾的 (1)、(2)
更改前
report (1).pdf
report (2).pdf
report (17).pdfPattern
\s*\(\d+\)$Replace
空字符串更改后
report.pdf
report.pdf
report.pdf只匹配文件名末尾的括号编号;重复结果会收到警告。
修改扩展名前的最后数字
更改前
event_001.jpg
session_42.jpgPattern
\d+$Replace
final更改后
event_final.jpg
session_final.jpg正则作用于基础名称,因此 $ 位于 .jpg 之前。
日期、多个前缀与后缀
转换日期格式
更改前
20260817_photo.jpg
20260818_photo.jpgPattern
^(\d{4})(\d{2})(\d{2})_Replace
$1-$2-$3_更改后
2026-08-17_photo.jpg
2026-08-18_photo.jpg使用 JavaScript 的 $1、$2、$3 重新插入捕获组。
整理连续空白
更改前
product image 01.jpgPattern
\s+Replace
_更改后
product_image_01.jpg无论多少空白都替换为一个下划线。
删除多个前缀之一
更改前
KakaoTalk_trip.jpg
DSC_1042.jpg
Screenshot_home.png
IMG_7788.jpgPattern
^(KakaoTalk_|DSC_|Screenshot_|IMG_)Replace
空字符串更改后
trip.jpg
1042.jpg
home.png
7788.jpg括号中的 | 表示任选一个。
查找所有数字组
更改前
photo_12_take_3.jpgPattern
\d+Replace
N更改后
photo_N_take_N.jpg工具使用全局匹配,因此所有数字组都会改变。
删除末尾 _copy
更改前
proposal_copy.docx
photo_copy.jpgPattern
_copy$Replace
空字符串更改后
proposal.docx
photo.jpg$ 确保只处理文件名末尾。
正则速查表
点号表示任意字符;实际的点要写成 \.. .* 范围很大,应搭配明确边界。
| 表达式 | 含义 |
|---|---|
| ^ | 文件名开头 |
| $ | 文件名结尾 |
| \d | 一个数字 |
| \d+ | 一个或多个数字 |
| \s | 一个空白字符 |
| \s+ | 一个或多个空白 |
| . | 任意一个字符 |
| .* | 任意多个字符 |
| () | 把匹配内容分组 |
| $1 | 重新使用第一组 |
| \. | 实际的点号 |
扩展名与捕获组
工具在最后一个点处分开扩展名,只对基础名称使用正则,因此 $ 位于扩展名之前。
JavaScript replace 支持用 $1、$2 重新插入捕获组,并使用 g 全局匹配。
只改扩展名文字不会转换真实文件格式。
应用前必须检查预览
\d+ 与 .* 可能匹配比预期更多的内容。无效正则和重复输出名称都会阻止下载。
- 原文件不会就地改名,副本进入 ZIP。
- 先用少量副本测试。
- 任何一行异常都应缩小 Pattern。
从示例开始
工具提供正则开关、快速帮助和所有文件的前后预览。
下载的 ZIP 包含新名称副本,源文件保持不变。
FAQ
- 正则会处理扩展名吗?
- 不会,只处理最后一个点之前的基础名称。
- 支持 $1 吗?
- 支持 JavaScript 的捕获组替换语法。
- 会直接修改原文件吗?
- 不会,会创建新名称副本并打包为 ZIP。