![Regulärer Ausdruck in YouTube-DL-Argumenten](https://rvso.com/image/1654756/Regul%C3%A4rer%20Ausdruck%20in%20YouTube-DL-Argumenten.png)
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 (.+?))?$