Mr. BJ hat geschrieben: ↑26. Mai 2018 11:16
Code: Alles auswählen
String fboxVersion "FBox Version [%s]" {fritzboxtr064="softwareVersion:REGEX(\\d{2}.\\d{1,}$)"}
An sich ist der RegEx in Ordnung, ich habe es bei regex101 geprüft.
Das Problem dabei ist, dass es meines Wissens keinen online Verifier für die in openHAB verwendete REGEX-Art gibt.
Es gibt eigentlich zwei große Unterschiede bei der Arbeit mit REGEX. Der erste Punkt ist, dass REGEX, falls es keinen Match gibt, die volle Eingangszeichenkette zurückliefert, statt einer leeren Zeichenkette. Dieses Verhalten könnte man eigentlich als fehlerhaft bezeichnen

aber es gab auch einen Grund, warum openHAB sich so verhält - frag bitte nicht, welchen, ich bekomme es nicht mehr zusammen.
der zweite Punkt ist, dass, falls es einen Match gibt, nicht einfach der gesamte Match zurück geliefert wird, sondern ausschließlich die erste Gruppierung. Du hast in Deinem REGEX keine Gruppierung, weshalb auch nichts zurückgeliefert wird.
Die Gruppen werden durchnumeriert, also $1, $2, $3 usw. Der Status wird eben aus $1 gebildet. Eine in openHAB gültige REGEX muss also immer exakt eine Gruppierung enthalten:
Mit einem Eingabewert
wird openHAB
zurückliefern (natürlich ohne die Gänsefüßchen, aber eben
mit den Leerzeichen).
Es gibt noch etliche andere Unterschiede, allgemein kann man sagen, dass REGEX eher das Minimum an Möglichkeiten bietet. Jegliche Spezialitäten sollte man von vornherein vergessen. Wenn man wirklich komplexe Matches bilden muss, ist es besser, gleich zu JS zu greifen.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet