mguenth83
Goto Top

RegEx in M3U

Hi,
kann mir jemand beim Powershell Regex helfen. Irgendwie verstehe ich das ganze nicht so.

Ich hab folgende Datei mit diesem Inhalt:

#EXTINF:-1 tvg-id="Das Erste" tvg-name="" tvg-shift="" radio="" tvg-logo="" group-title="",ARD
http://TelekomIPTV/StreamARD.ts
#EXTINF:-1 tvg-id="Das Zweite" tvg-name="" tvg-shift="" radio="" tvg-logo="" group-title="",ZDF
http://TelekomIPTV/StreamZDF.ts

Jetzt möchte ich das ganze in Objekt unterteilen sprich zb. ist Zeile 1 und Zeile 2 ein Block und 3 und 4 sind auch wieder ein Block.

Im Grunde möchte ich später die HTTP Links zwischen zwei M3U_Dateien vergleichen und gucken welche gleich geblieben sind bzw sich geändert haben.


Wär cool wenn jemand den Regex-Befehl rausfinden könnte.

Gruß
Matze

Content-ID: 332901

Url: https://administrator.de/forum/regex-in-m3u-332901.html

Ausgedruckt am: 21.12.2024 um 05:12 Uhr

Kraemer
Kraemer 22.03.2017 um 14:28:47 Uhr
Goto Top
Moin,
das passende regex - musst du nur noch auf Powershell bringen
/^.*\"(.*)\".*(http.*)$/gUsm  

Gruß
mguenth83
mguenth83 22.03.2017 um 14:37:57 Uhr
Goto Top
Danke für den Anstoß aber genau das is ja das Problem. im Online Konfigurator für Regex funktioniert es in Powershell aber net face-sad
132692
132692 22.03.2017 aktualisiert um 15:07:12 Uhr
Goto Top
Was du jetzt von beiden Blöcken brauchst -> keine Ahnung, ist aber kein Problem das anzupassen ...
[regex]::matches((gc 'c:\datei.m3u' -raw),'(?ism)^#EXTINF:.*?(^https?://[^\r\n]+)').Captures | %{$_.Groups[1].Value}  
Gruß p.

Danke für den Anstoß aber genau das is ja das Problem. im Online Konfigurator für Regex funktioniert es in Powershell aber net
Dafür schaut man ja vorher in die Doku und lässt sich sowas nicht generieren.
Denn dann weiß man nämlich was man tut
Kraemer
Lösung Kraemer 22.03.2017 aktualisiert um 15:59:35 Uhr
Goto Top
Zitat von @mguenth83:

Danke für den Anstoß aber genau das is ja das Problem. im Online Konfigurator für Regex funktioniert es in Powershell aber net face-sad
wenn du schon was hast - warum postest du das nicht?

Nun habe ich auch keine Lust mehr zu erklären.

[regex]::matches((gc 'C:\temp\admin.txt' -raw),'(?ism)^.*?\"(.*?)\".*?^(http.*?)$').captures | %{write-host ($_.Groups[1].value) "-" ($_.Groups[2].value)}  

Edit: @132692 war mal wieder schneller face-wink