2012-11-15 25 views
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 

我使用自定義表達式來刪除特定的字符串,句號&連字符它需要幾個步驟。 下面是我用更名清理名字了幾個表情:

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

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

歡迎來到Stack Overflow。你能更清楚地說明什麼是問題嗎? –

回答

0

你可以做,使用正則表達式

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

與更換

$1$4 

看到這個Perl demo


要了解有關正則表達式的更多信息,請訪問this site

相關問題