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

Я создал следующее регулярное выражение, чтобы соответствовать шаблону каталогов, которые я использую, чтобы сохранить свою музыкальную коллекцию в.Нужна помощь в улучшении моего регулярного выражения

Общий шаблон для структуры каталогов, как это

artist - albumnr. albumname (year) [quality] 

Я пытаюсь сопоставить группы, имя альбома, год и качество. Однако я хотел бы очистить имя альбома и удалить все, что находится в круглых скобках, или любую строку, которая появится после тире.

например.

  • albumname -blahblah (remastered) - просто возвращающие ALBUMNAME в 3-м матче группового
  • albumname (remastered) - все равно просто вернуть ALBUMNAME
  • albumname - регулярное выражение должно еще быть в состоянии вернуть название альбома, даже если нет - или backets в результате.
+0

Что OS и/или команды -лайн интерфейс вы используете? – 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

Спасибо, что работал просто отлично! Регулярное выражение помогает мне собирать художественные работы для моих альбомов, удаляя ошибочные названия с помощью скобок в названии альбома или таких слов, как (переиздание), (ремастированный) и т. Д., Которые всегда появляются в скобках. Замечательно, что вам не нужно составлять список ключевых слов для удаления, и регулярное выражение помогает убрать название альбома для более точного поиска работ. – reptilian

Смежные вопросы