Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 用于删除重复字符串的文件重命名器正则表达式_Regex_Capture_Replace_File Rename - Fatal编程技术网

Regex 用于删除重复字符串的文件重命名器正则表达式

Regex 用于删除重复字符串的文件重命名器正则表达式,regex,capture,replace,file-rename,Regex,Capture,Replace,File Rename,我有类似这些示例的文件夹名称 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.train

我有类似这些示例的文件夹名称

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
我使用自定义表达式删除特定的字符串、句点和连字符,这需要几个步骤。 以下是我用来清理重命名器中名称的几个表达式:

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

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

您可以使用正则表达式模式来实现这一点

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

$1$4
请参见此



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

欢迎使用堆栈溢出。你能更清楚地说明问题是什么吗?