Regexp in IF-Abfragen

Begonnen von Puschel74, 16 Januar 2013, 18:10:15

Vorheriges Thema - Nächstes Thema

Puschel74

Hallo zusammen,

dieser Codeschnipsel funktioniert soweit das zumindest das notify schonmal angesprungen wird.


.*._Fenster:.*|Anwesenheit_.*:.* {
  Log (3,"@");
if ("@" eq "Anwesenheit_.*") {
  Log (3,"Du hast @ umgeschaltet");
  }
  if ("@" eq ".*._Fenster") {
  Log (3,"Du hast @ umgeschaltet");
  }
}

Das sehe ich daran das der erste Log-Eintrag das
2013.01.16 18:02:29 3: DG_Lern_Fenster
im Logfile zum Vorschein bringt.
Leider klappt meine If-Abfrage aber nicht - es gibt auch keine Fehlermeldung im Log.
Auch ohne Punkt in der Abfrage sehe ich nur den ersten Log-Eintrag.

Wie kann ich sowas in meiner IF-Abfrage abfangen das, wenn irgend ein Fenster auslöst (.*._Fenster), die If-Abfrage korrekt
bearbeitet wird?

Danke für Eure Hilfe.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

UliM

Hi,
Der Operator eq prüft 'identisch mit' und kann m.W. keine Wildcard wie _.*
Dafür musst Du den Operator =~ verwenden:
if ("@" =~ m"text.*" )

Als delimiter des Suchmusters kannst Du ein beliebiges Zeichen verwenden. Statt " wird meist / verwendet, also
if ("@" =~ m/text.*/ )

Geht's damit?

Gruß Uli
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

UliM

PS: google "perl regexp" bringt viele Hilfeseiten dazu, da findest Du ggf schnell ein passendes Beispiel.
Viel Erfolg!
RPi4/Raspbian, CUL V3 (ca. 30 HomeMatic-devices), LAN (HarmonyHub, alexa etc.).  Fördermitglied des FHEM e.V.

Puschel74

Hallo,

perofekto Uli. Wunderbar, danke Dir.

if ("@" =~ m/Anwesenheit.*/ ) {

trifft wunderbar ins schwarze.

Danke auch für den Google-Hinweis ;-)
Aber an meinem Firefox ist das Forum als Startseite eingetragen und goggle klemmt seither bei mir ^^
Schlechte Angewohnheit, ich weiß. Die muss auch wieder weg.

Grüße
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Dietmar63

Ich habe einen richtig guten Link zum Thema RegExp gefunden.
Dort kann man eigene Ideen interaktiv ausprobieren und muss nicht immer "reloaden".


http://regex.powertoy.org/

Dietmar
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Puschel74

Danke für den Link.
Allerdings scheint mein FF17.0.1 da etwas zu streiken.
Das Menü und die Eingabeleiste sind irgendiwe .. "verschoben"
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

WiKa

Zitat von: Puschel74 schrieb am Mi, 16 Januar 2013 22:38Danke für den Link.
Allerdings scheint mein FF17.0.1 da etwas zu streiken.
Hallo Puschel,
nicht nur mit FF 17x.
Wenn Du genau hinschaust, kannst Du auch die Fehlermeldung lesen - steht "verwurschtelt" am linken Rand.
"This Browser does not have an active JavaPlug-in"

VG,
WiKa
 
FB7390 FW:FRITZ!OS 05.50 / RFXTRX433 FW:433_64 / ELRO AB440R (modified to IT-Code) - AB440S (IT-Code) - AB440IS (IT-Code) / Oregon THGN132N - THN132N - THGR122N / Intertechno PAR-1000 - PAR1500