2012-06-01 31 views
0
^(\w+) - (\d+). (.+) \((\d+)\) \[(\w+)] 

我創建了下面的正則表達式匹配我用我的音樂收藏存儲在目錄中的一個模式。需要一些幫助提高我的正則表達式

的目錄結構的一般模式是這樣的

artist - albumnr. albumname (year) [quality] 

我試圖將藝術家,專輯名稱,年份和質量進行組合。但是,我想清理相冊名稱,並刪除括號內的任何內容或刪除短劃線後出現的任何字符串。

例如

  • albumname -blahblah (remastered) - 將只返回ALBUMNAME在第三組比賽
  • albumname (remastered) - 仍然只返回ALBUMNAME
  • albumname - 正則表達式應該仍然能夠返回專輯名稱即使沒有 - 或backets在結果之內。
+0

什麼操作系統和/或命令你使用的是線路接口? – kevlar1818

+0

此外,一些示例目錄標題將會有所幫助,而不僅僅是他們所採用的模式。 – kevlar1818

回答

0

這一次將匹配albumname -blahblah (remastered)albumname (remastered)但不albumname (remastered) -blahblah

^(\w+) - (\d+)\. (.+?) ?(?:-\w+)? ?(?:\(.*?\))? \((\d+)\) \[(\w+)\] 

測試here

如果你也想對陣albumname (remastered) -blahblah

^(\w+) - (\d+)\. (.+?) ?(?:-\w+)? ?(?:\(.*?\))? ?(?:-\w+)? \((\d+)\) \[(\w+)\] 
+0

謝謝你的工作完美!正則表達式有助於我通過刪除專輯名稱中包含的錯誤標題或像(重新發布),(remastered)等總是出現在括號中的詞語來刪除錯誤的標題,從而爲我的專輯收集藝術品。很好,無需製作關鍵字列表即可刪除,而正則表達式可幫助整理專輯標題以獲得更精確的藝術作品搜索。 – reptilian