2014-01-11 4 views
0

я использую Debian Squeeze как NAS_OS и не могу установить Mkvtoolnix использовать этот скриптRegular Expression проблема установка выхода

так им пытается просто ПОДСТРОЙКА re.compile люкса старого выхода Mkvtoolnix.

мне было интересно МЕТОДИЧЕСКИЕ соответствовать этой команде

AUDIO_RE = re.compile(r"Spur ID (\d+): audio \([A-Z0-9_/]+\) [number:\d+ uid:\d+ codec_id:[A-Z0-9_/]+ codec_private_length:\d+ language:([a-z]{3})") 
SUBTITLE_RE = re.compile(r"Spur ID (\d+): subtitles \([A-Z0-9_/]+\) [number:\d+ uid:\d+ codec_id:[A-Z0-9_/]+ codec_private_length:\d+ language:([a-z]{3})(?: track_name:\w*)? default_track:[01]{1} forced_track:([01]{1})") 

к этому типу линии продукции?

Track ID 2: audio (A_AC3) [language:ger default_track:1 forced_track:1] 
Track ID 3: audio (A_DTS) [language:eng default_track:0 forced_track:0] 
Track ID 4: subtitles (S_TEXT/UTF8) [language:eng default_track:0 forced_track:0] 

это, как далеко я получил - но сценарий по-прежнему не хочет работать для меня

AUDIO_RE = re.compile(r"Track ID (\d+): audio \([A-Z0-9_/]+\) [language:[a-z]{3} default_track:[01]{1} forced_track:[01]{1}") 
SUBTITLE_RE = re.compile(r"Track ID (\d+): subtitles \([A-Z0-9_/]+\) [language:[a-z]{3} default_track:[01]{1} forced_track:[01]{1}") 

Script, что я говорю здесь

+0

Вам не нужно '{1}' - без модификатора, все просто соответствует одному времени. – Barmar

+0

У вас есть некоторые символы, которые вы забыли избежать. –

+0

Все еще не работает AUDIO_RE = re.compile (r "Идентификатор дорожки (\ d +): audio \ ([A-Z0-9 _ /] + \) [язык: [az] {3} default_track: [01] принудительный_трек: [ 01]] ") SUBTITLE_RE = re.compile (r" Идентификатор трека (\ d +): субтитры \ ([A-Z0-9 _ /] + \) [язык: [az] {3} default_track: [01] forced_track : [01]] ") –

ответ

0

Чтобы соответствовать аудиолинию (предполагая, что все, что вы хотите, чтобы захватить это трек ID):

Track ID (\d+): audio \([A-Z0-9_/]+\) \[language:[a-z]{3} default_track:[01] forced_track:[01]\] 

Пример: http://regex101.com/r/pZ6aR5

Чтобы соответствовать линии субтитров (опять же, такое же предположение):

Track ID (\d+): subtitles \([A-Z0-9_/]+\) \[language:[a-z]{3} default_track:[01] forced_track:[01]\] 

Пример: http://regex101.com/r/qO1zV0

Примечание в обоих случаях избежали \[ и \], которые необходимы для сопоставления литералов квадратные скобки.

+0

попробуем пару минут. но на самом деле мне нужен язык. –

+0

Затем просто заверните '[a-z] {3}' в скобках -> '([a-z] {3})' – brandonscript