File Renamer正则表达式删除重复字符串

时间:2012-11-15 05:35:04

标签: regex capture replace file-rename

我有像这些例子一样的FOLDER名字

sons.of.anarchy.s05e01.hdtv.x264-2hd.nfo - sons.of.anarchy.s05e01.hdtv.x264-2hd.
sons.of.anarchy.s05e03.hdtv.x264-asap.nfo - sons.of.anarchy.s05e03.hdtv.x264-asap.
Jump.3.training.Or.Wand.3410.7200k.Blade.DD.5.1.x300-NTb - Jump.3.training.Or.Wand.3410.7200k.Blade.DD.5.1.x300-NTb.

和这些样本类似的FILE名称

sons.of.anarchy.s05e01.hdtv.x264-2hd.nfo - sons.of.anarchy.s05e01.hdtv.x264-2hd.mp4
Jump.3.training.Or.Wand.3410.7200k.Blade.DD.5.1.x300-NTb - Jump.3.training.Or.Wand.3410.7200k.Blade.DD.5.1.x300-NTb.avi

我想构建一个RegEx,它将重命名文件/文件夹并删除重复的字符串。

像这样的文件夹:

sons.of.anarchy.s05e01.hdtv.x264-2hd
sons.of.anarchy.s05e03.hdtv.x264-asap
Jump.3.training.Or.Wand.3410.7200k.Blade.DD.5.1.x300-NTb

这样的文件

sons.of.anarchy.s05e01.hdtv.x264-2hd.mp4
Jump.3.training.Or.Wand.3410.7200k.Blade.DD.5.1.x300-NTb.avi

最终我的目标是让名字看起来像这样:

Sons Of Anarchy S05E01
Sons Of Anarchy S05E03
Jump 3 Training Or Wand
Sons Of Anarchy S05E01.mp4
Jump 3 Training Or Wand.avi

我使用自定义表达式删除特定字符串,句点和&连字符这需要几个步骤。 以下是我用于在Renamer中清理名称的一些表达式:

Find: [\.\-_/~\[\])("] and I replace with a space

Find: \s*$ and I replace with nothing to Remove spaces at the end of Names

1 个答案:

答案 0 :(得分:0)

你可以使用正则表达式

来做到这一点
^(.*?)([.]\w*|)\s+[-]\s+\1([.](?=$))?([.]\w*|)$

替换

$1$4

请参阅 Perl demo


要详细了解正则表达式,请访问this site