Regulärer Ausdruck in YouTube-DL-Argumenten

Regulärer Ausdruck in YouTube-DL-Argumenten

Ich möchte zwei Pfade aus den youtube-dl-Argumenten extrahieren, die Ausgabevorlage und den ffmpeg-Speicherort

-o (.*%\(ext\)s).* --ffmpeg-location (.*)

Mit dem obigen regulären Ausdruck kann ich sowohl die Ausgabevorlage als auch den FFMPEG-Speicherort aus dem folgenden Ausdruck erfassen

-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/

Das Problem besteht darin, dass der ffmpeg-Speicherort manchmal nicht angegeben wird, beispielsweise wie folgt:

-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

Ich möchte in der Lage sein, die Ausgabevorlage mit nur einem regulären Ausdruck zu erfassen, auch wenn der FFMPEG-Speicherort im Ausdruck nicht vorhanden ist.

Ich teste diesHier.

Antwort1

Ich mache meinen Kommentar zu einer Antwort.

Verwenden Sie diesen regulären Ausdruck, er funktioniert in beiden Fällen:

-o (.*%\(ext\)s).+?(?:--ffmpeg-location (.+?))?$

Demo & Erklärung

verwandte Informationen