Ich glaube ich drehe durch oder doch zu blöd...
Ich möchte aus dem Modul Departure die Abfahrtszeit meiner Straßenbahn mit einem Regex extrahieren und in ein Label schreiben.
Das wäre das Reading:
departure_0_time_human_readable
11.12.2018, 20:12 Uhr
Ich brauche nur die Uhrzeit.
Habe folgendes Regex angewendet: data-part=".[\d+]:[\d+].*"
Im im Online Regex Tester(https://regex101.com/) gibt er mir das richtig zurück
Full match 12-21 `19:48 Uhr`
Soweit ich das verstehe.
Leider bleibt mein Label leer?
Kann mir da jemand auf die Sprünge helfen?
Gruß namor
Du brauchst nicht nur ein "Match" sondern auch ein "Capturing Group"
data-part="(.[\d+]:[\d+].*)"
oder
data-part=",.([\d:]+).Uhr"
Guck mal den Unterschied mit regex101.com
Und wenn dein Reading wirklich auf 2 Zeilen ist, brauchst Du noch (?s)
am Anfang der Regex dazu, also:data-part="(?s)(.[\d+]:[\d+].*)"
@amenomade
Danke für Deine Hilfe.
Leider zeigt er mir nix an!
Lasse ich den data-part weg, zeigt er mir die ganze Zeile mit Datum, also sind die Daten generell mal da.
Das ist mein gesamtes div:
<div data-type="label" data-device="VAGDeparture" data-get="departure_0_time_human_readable" data-part="(.[\d+]:[\d+].*)" style="medium thin;color:#ace600; " class="medium thin right-align left-space"></div>
Auch Deine zweite Variante geht nicht.
Das Reading kommt in einer Zeile.
Was kann ich noch machen?
Gruß
Ok,
habe es gelößt.
1. War ich im falschen Reading, mein gesuchtes Reading macht folgende Ausgabe:
2018-12-12T21:36+0100
Das erstellte Regex ist "(\d\d\:\d\d)" um nur die Uhrzeit 21:36 zu extrahieren.
Genau so eingetragen ins Label, ergibt KEINE AUSGABE!
Im Regex-Online passt das!
Ich habe folgende Bemerkung von @setstate aus 2016 gefunden:
"Eventuell noch ein .* davor und danach, weil automatisch ^ und $ verbaut ist."
Das hat mich auf die Schreibweise ".*(\d\d\:\d\d).*" gebracht.
Nun zeigt er meine Uhrzeit im Label wie gewünscht an.
Danke nochmal an @amenomade, Du hast mich durch Deine Antwort dazu gebracht nicht aufzugeben.