2011-09-08 77 views
0

我對一堆我想改變的文件有一個命名約定,所以我使用了Metamorphose程序。它使用正則表達式來選擇文件,並根據替換使用正則表達式選擇性地更改部分文件名。一些簡單的重命名文件的正則表達式

我一直有一個問題替換我的文件名的一部分(我昨晚管理它,但忘記了我輸入的內容)。基本上我想把目標放在「) - 」之後,然後抹去它。

例如:「IMG2061211-(2011.09.08)-shot for web」我想瞄準「爲網絡拍攝」並擺脫它。這個值有時會變化並且有數字。

我能夠通過使用(?:\)-)+.*來選擇所有文件,但是我自從無法選擇結束部分來替換爲空。

編輯的特異性:

我基本已經通過文件名跑幾次每次更換不同的部分,並想知道是否有一個更好的辦法去這樣做。

一個文件名的例子是:Verdrahtung-Fibre_Optik-(RR01612)-XVF221-2011我想要實現的東西不那麼愚蠢。我只是想實現Verdrahtung - Fibre Optik [RR01612]

我已經做了分步,使用\)-.*擺脫)-]更換。 然後我用\(擺脫-(並用[代替它。 然後我刪除任何_

有沒有更好的方式去做這件事?

回答

1

您可以搜索\)-.*並替換爲)

這將刪除文件名中第一個)-之後的所有內容。

如果蛻變支持環視斷言,你可以,如果你搜索

(?<=\))-(?:(?!\)-).)* 

,並沒有取代有點更安全。這將刪除文件名中最後一個)-之後的所有內容。

編輯:關於你提到的例子,你可以搜索

(.*)-\(([^)]*)\)-.* 

,並替換成

$1 [$2] 

(如果還是不行,請嘗試\1 [\2])。這會將Verdrahtung-Fibre_Optik-(RR01612)-XVF221-2011更改爲Verdrahtung-Fibre_Optik [RR01612]。除非總是隻有一個下劃線,否則用空格替換下劃線必須在第二步中完成。

+0

嗯。奇。這就是我最初使用的,但不是選擇。 – tr3online

+0

哦,nvm。我是個傻瓜!它工作得很好。謝謝。 – tr3online

+0

如果我想添加諸如「{數字或字母數字} - {數字或字母數字}」( - 觸摸字符)並將其轉換爲其他內容,該怎麼辦? – tr3online

0

^([^\)]+)-(.*)$ Then \ 1 give'IMG2061211-(2011.09.08)'and \ 2 given'shot for web'。

此外,請檢查出Regex Tester

0

http://regexrenamer.sourceforge.net/

試試這個,這將解決所有的馬約的正則表達式模式

+0

這是否工作正常?我很厭惡Regex,並使用RegexBuddy,但仍然失敗:D – tr3online

+0

它會工作得很好,我相信如果你通過舉例給出的例子,它將很容易與你面對的pblm相匹配。 – Ramprasad

+0

我一定會看看它。感謝您的建議:) – tr3online