Dav*_*ica 6 regex batch-rename
我一直在使用GPRename来批量重命名文件;这比单独更正每个文件更有效,但似乎仍然比它可能的效率低,主要是因为我不理解所使用的正则表达式语法,或者因为正则表达式实现不完整1
给定以下语法的文件列表:
(01) - title of file1.avi
(02) - title of file2.avi
(03) - title of file3.avi
Run Code Online (Sandbox Code Playgroud)
我尝试使用“替换”(选择正则表达式选项,取消选择区分大小写的选项):
(\(\d{2}\))
Run Code Online (Sandbox Code Playgroud)
然后预览显示(鉴于我尚未指定“替换为”选项):
title of file1.avi
title of file2.avi
title of file3.avi
Run Code Online (Sandbox Code Playgroud)
这很好,很明显正则表达式正在识别正确的组((01))。现在,我希望在“替换为”选项中(使用 JavaScript 语法)使用:
$1
Run Code Online (Sandbox Code Playgroud)
(我也尝试使用'$1',\1和'\1')
这只是为了检查我是否可以访问匹配的组,而我似乎不能,正如我想的那样,匹配的组被替换为文字替换字符串。
所以,我的问题是:是否可以匹配一组特定的字符,在这种情况下是括号内的数字,然后将它们插入到替换字符串中?所以:
(01) title of file1.avi
(02) title of file2.avi
(03) title of file3.avi
Run Code Online (Sandbox Code Playgroud)
变成:
01 title of file1.avi
02 title of file2.avi
03 title of file3.avi
Run Code Online (Sandbox Code Playgroud)
不幸的是,您似乎不能;并且这是一个不完整的正则表达式实现有错。
所有GPRename 语言环境翻译末尾的这一行似乎很明显:
msgstr "不能使用带有正则表达式的反向引用
因为 $1 被认为是 Perl 变量。”
由于您熟悉 Perl 正则表达式,我可以建议您改用出色的rename命令行实用程序吗?
-n开关进行预览。\((\d{2})\),在转义括号内进行分组。例子:
$重命名 -n 's/\((\d{2})\)/$1/' *.avi
(01) file1.avi 的标题更名为 file1.avi 的 01 标题
(02) file2.avi的标题更名为file2.avi的02标题
(03) file3.avi的标题更名为file3.avi的03标题
rename使用-v(详细)开关调用并删除-n以实际执行重命名。| 归档时间: |
|
| 查看次数: |
1862 次 |
| 最近记录: |