0

我有像这些例子这样的文件夹名称

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.

以及类似这些示例的文件名称

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

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

像这样的文件夹:

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
4

1 回答 1

0

您可以使用正则表达式模式来做到这一点

^(.*?)([.]\w*|)\s+[-]\s+\1([.](?=$))?([.]\w*|)$

更换

$1$4

请参阅此Perl 演示


要了解有关正则表达式的更多信息,请访问此站点

于 2012-11-15T12:54:08.550 回答