Я хочу извлечь два пути из аргументов youtube-dl, выходной шаблон и местоположение ffmpeg.
-o (.*%\(ext\)s).* --ffmpeg-location (.*)
С помощью приведенного выше регулярного выражения я могу извлечь как шаблон вывода, так и местоположение ffmpeg из приведенного ниже выражения.
-o D:/Deskttop/test//%(title)s.%(ext)s -i -f (best)[height=1080]/best --recode-video mp4 https://www.youtube.com/watch?v=MMuUFjxLQJU --no-playlist --encoding utf-8 --ffmpeg-location D:/Deskttop/test/
Проблема в том, что иногда местоположение ffmpeg не указывается, например:
-o D:/Deskttop/test//%(title)s.%(ext)s -i -f (best)[height=1080]/best --recode-video mp4 https://www.youtube.com/watch?v=MMuUFjxLQJU --no-playlist --encoding utf-8
Я хочу иметь возможность захватывать выходной шаблон, даже если местоположение ffmpeg отсутствует в выражении, используя только одно регулярное выражение.
Я тестирую этоздесь.
решение1
Я делаю свой комментарий ответом.
Используйте это регулярное выражение, оно работает в обоих случаях:
-o (.*%\(ext\)s).+?(?:--ffmpeg-location (.+?))?$