FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Hi2Helmi am 07 März 2019, 17:26:32

Titel: userReadings mit RegEx
Beitrag von: Hi2Helmi am 07 März 2019, 17:26:32
Hallo,
ich habe mir einen userReadings mit RegEx gebastellt.
Ich habe eine Zeit im Format "HH:MM"
Wenn die Stunde z.B. 04 ist wünsche ich mir das Ergebniss 4 (ohne Null voran)
Wenn die Stunde z.B. 12 ist wünsche ich mir das Ergebniss 12

Meine userReadings ist folgender:
stunden {my $v = ReadingsVal($name,"state","0");; $v =~ s/([1]?[0-9])[:](\d\d)/$1/;; $v}
Mein Problem liegt darin, dass die Null nicht weggemacht wird, obwohl es so sein sollte.
Also 04:12 wird zu 04 und nicht zu 4.
Während 14:12 zu 14 wird.
Versehe nicht wo der Fehler liegt.

Über einen RegEx Tester funktioniert es nämlich genau so wie ich es mir wünsche!
Titel: Antw:userReadings mit RegEx
Beitrag von: Hi2Helmi am 07 März 2019, 19:36:06
Hab es jetzt auf folgender weise gelöst:
stunden {my $v = ReadingsVal($name,"state","0");; $v =~ s/([1]?[0-9])[:](\d\d)/$1/;; $v = $v+0;; $v}
Dies ist zwar keine Antwort auf meinen nicht funktionierenden RegEx. Kann aber damit leben.
Titel: Antw:userReadings mit RegEx
Beitrag von: DeeSPe am 07 März 2019, 23:52:21
stunden {my $v = ReadingsVal($name,"state","0");; $v =~ s/^0?(\d\d?):\d\d/$1/;; $v}

Gruß
Dan

EDIT: Sorry, meine erste Lösung hat nicht Stunden, sondern die Zeit ohne führende Null zurück gegeben.