Hauptmenü

Abfrage mit mehreren Werten

Begonnen von holle75, 21 Mai 2018, 11:05:00

Vorheriges Thema - Nächstes Thema

holle75

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?

Ellert

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

holle75

#2
Danke Ellert, nice.

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

sollte dann den Fall 3.2 indirekt umgehen?

Ellert

Die Regexp muss genauer gefasst werden, z.B. durch Verwendung von ^ und $.

Per

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.

gloob

So müsste die Regex aussehen:

^[2-9]$

Alle Zeichen von 2-9 und auch nur genau ein Zeichen lang.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

holle75

Danke euch ..... oooooh diese Regex ....