FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: holle75 am 21 Mai 2018, 11:05:00

Titel: Abfrage mit mehreren Werten
Beitrag von: holle75 am 21 Mai 2018, 11:05:00
Hallo Ihr, ich habe mich jetzt ein Stündchen durchs Wiki und commanref gearbeitet und finde die Lösung nicht.
Wahrscheinlich fällt das auch unter Anfängerfragen, aber eigentlich habe ich schon zu viel mit DOIF gebastelt ... umso mehr ärgert es mich :)

Egal,  ich trau mich: wie kann ich in einer Abfrage mehrere Werte angeben?

für sowas:
[$SELF:cmd] eq "2|3|4|5|6|7|8|9"

habe ich kein Beispiel gefunden, aber eben auch sonst nichts.

So:
[$SELF:cmd] eq "2" or [$SELF:cmd] eq "3" .... usw

kanns ja sicher nicht (in hübsch) sein?

... und noch eine Frage: ist cmd generell ein NichtZahlenwert? Also wird mit eq/ne und Anführungszeichen abgefragt?
Titel: Antw:Abfrage mit mehreren Werten
Beitrag von: Ellert am 21 Mai 2018, 11:18:34
Nimm den match Operator [$SELF:cmd] =~ "2|3|4|5|6|7|8|9"

2 match dann aber auch bei 3.2, falls es diesen cmd-Status gibt.

siehe auch https://perldoc.perl.org/perlre.html
Titel: Antw:Abfrage mit mehreren Werten
Beitrag von: holle75 am 21 Mai 2018, 11:21:23
Danke Ellert, nice.

[$SELF:cmd_nr] =~ "2|3|4|5|6|7|8|9"

sollte dann den Fall 3.2 indirekt umgehen?
Titel: Antw:Abfrage mit mehreren Werten
Beitrag von: Ellert am 21 Mai 2018, 11:35:18
Die Regexp muss genauer gefasst werden, z.B. durch Verwendung von ^ und $.
Titel: Antw:Abfrage mit mehreren Werten
Beitrag von: Per am 22 Mai 2018, 14:10:13
Zitat von: holle75 am 21 Mai 2018, 11:21:23sollte dann den Fall 3.2 indirekt umgehen?
Ja, aber Fall "12" ist dann noch drin.
Titel: Antw:Abfrage mit mehreren Werten
Beitrag von: gloob am 22 Mai 2018, 14:16:34
So müsste die Regex aussehen:

^[2-9]$

Alle Zeichen von 2-9 und auch nur genau ein Zeichen lang.
Titel: Antw:Abfrage mit mehreren Werten
Beitrag von: holle75 am 22 Mai 2018, 14:37:06
Danke euch ..... oooooh diese Regex ....