Регулярное выражение в аргументах youtube-dl

Регулярное выражение в аргументах youtube-dl

Я хочу извлечь два пути из аргументов 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 (.+?))?$

Демонстрация и пояснения

Связанный контент