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-Key: 332901

Url: https://administrator.de/contentid/332901

Printed on: April 19, 2024 at 17:04 o'clock

Member: Kraemer
Kraemer Mar 22, 2017 at 13:28:47 (UTC)
Goto Top
Moin,
das passende regex - musst du nur noch auf Powershell bringen
/^.*\"(.*)\".*(http.*)$/gUsm  

Gruß
Member: mguenth83
mguenth83 Mar 22, 2017 at 13:37:57 (UTC)
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
Mitglied: 132692
132692 Mar 22, 2017 updated at 14:07:12 (UTC)
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
Member: Kraemer
Solution Kraemer Mar 22, 2017 updated at 14:59:35 (UTC)
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