FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: TheAbalone am 10 November 2018, 21:54:15

Titel: RegEx in data-part
Beitrag von: TheAbalone am 10 November 2018, 21:54:15
Hallo!

Ich würde gerne in einem Label nur die ersten beiden Buchstaben des Readings anzeigen lassen (So bei Sonntag z.B.).
Dafür gibt es ja data-part
Das Regex ^.{2} funktioniert aber nicht. Eigentlich funktioniert gar kein Regex mit ^

Wo liegt der Fehler?
Danke für eure Hilfe!
Titel: Antw:RegEx in data-part
Beitrag von: SirMarco am 10 November 2018, 22:28:02
Poste mal deinen Code bitte

Wie soll man ohne denn helfen?
Titel: Antw:RegEx in data-part
Beitrag von: TheAbalone am 10 November 2018, 22:38:46

<div class="cell-15"
data-type="label"
data-device="cv_Kalender"
data-get="t_001_weekdayname"
data-part="^.{2}">
</div>
Titel: Antw:RegEx in data-part
Beitrag von: OdfFhem am 11 November 2018, 08:03:41
Rein theoretisch ist hier nicht unbedingt ein RegEx notwendig, da das CALVIEW-Device für diesen Zweck ein Attribut  bereitstellt.

kurze Wochentage: Mo ... So

attr <CALVIEW-Device> weekdayformat de-short


lange Wochentage (Standard): Montag ... Sonntag

attr <CALVIEW-Device> weekdayformat de-long


Wird dieses Attribut geändert, sollte man set <CALVIEW-Device> update ausführen, ansonsten werden die Wochentage erst bei der nächsten Kalender-Aktualisierung neu berechnet.


Sollte man aber sowohl Verwendung für die kurzen als auch die langen Wochentage haben, dann hilft dies natürlich nicht.

In einem solchen Fall kann man u.a. auf folgende Varianten zurückgreifen

data-part="(..).*"
data-part="(.{2}).*"
Titel: Antw:RegEx in data-part
Beitrag von: TheAbalone am 11 November 2018, 16:31:38
OK, vielen Dank!

Ist es irgendwo dokumentiert, dass ^ und $ nicht funktionieren?

Deine Variante habe ich nirgens gefunden ...
Titel: Antw:RegEx in data-part
Beitrag von: setstate am 11 November 2018, 18:40:03
Zitatdass ^ und $ nicht funktionieren?

^ und $ funktionieren!

Bei dir fehlte die Capture-Group. Es wurde also nicht angegeben, was "rausgeholt" werden soll.

Ausserdem werden ^ und $ implizit eingefügt. Dadurch würde ein

data-part="(.{2})"

auch nicht funktionieren, weil es eigentlich so aussieht

data-part="^(.{2})$"