FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Josch am 03 Februar 2021, 15:37:01

Titel: [gelöst] Auswertung regulärer Ausdrücke in FHEM abweichend vom Standard?
Beitrag von: Josch am 03 Februar 2021, 15:37:01
Hallo zusammen,

ich habe mehrere Sensoren, die nach folgendem Schema benannt sind: <zwei Buchstaben>_THSen<Zahl>, also z.B. au_THSen1, au_THSen2, ga_THSen1 usw.
Nun möchte ich ein Notify schreiben, dass für alle Sensoren funktioniert, die "THSen" im Namen tragen. Als regulären Ausdruck kann man das z.B. so schreiben (getestet mit http://regexe.com):
(.{2})(_THSen.*)

Wenn ich diesen Ausdruck aber mit RegexpCheck im Web Frontend teste:
{ notifyRegexpCheck('(.{2})(_THSen.*)') }

erhalte ich
(.{2})(_THSen.*): no match (ignored)
d.h. meine Sensoren werden nicht gefunden. Ich habe schon alles mögliche probiert. Bei den Beispielen im Wiki gibt es leider nur die Fälle variabler Präfix oder variabler Suffix, aber nicht beides.
Was mache ich falsch? Warum verhält sich FHEM anders als der online-RegEx-Evaluator?

Für Tipps wäre ich sehr dankbar.
Josch
Titel: Antw:Auswertung regulärer Ausdrücke in FHEM abweichend vom Standard?
Beitrag von: Beta-User am 03 Februar 2021, 15:48:11
 :)
Der NOTIFYDEV-Parser ist etwas einfacher gestrickt und versteht nicht die volle "normale" Regex-Sprache, daher gibt es ja die Funktion zum Testen, ob eine devspec "gut verstanden" wird...

Man sollte tendenziell auf Klammern verzichten, das bringt den im Zweifel nur durcheinander. Was zeigt:{ notifyRegexpCheck('.._THSen.*') }
Titel: Antw:Auswertung regulärer Ausdrücke in FHEM abweichend vom Standard?
Beitrag von: Josch am 03 Februar 2021, 16:06:23
Danke Beta-User,

das geht! Manchmal sieht man den Wald vor Bäumen nicht ::). Auf die Idee mit den zwei Punkten war ich nicht gekommen...
Titel: Antw:Auswertung regulärer Ausdrücke in FHEM abweichend vom Standard?
Beitrag von: herrmannj am 03 Februar 2021, 16:07:41
Dir Regex ist aber auch krude formuliert und <zwei Buchstaben>_TH_Sen<Zahl>, also z.B. au_THSen1 widerspricht sich weil nach TH der '_' fehlt oder zu viel ist.

'.._TH_Sen\d' matched 'AB_TH_Sen1'

.. überschnitten :)
Titel: Antw:[gelöst] Auswertung regulärer Ausdrücke in FHEM abweichend vom Standard?
Beitrag von: Josch am 03 Februar 2021, 16:33:20
Sorry,

der zweite Unterstrich im Schema ist ein Tippfehler. Wird korrigiert.