FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: FHEMAN am 24 November 2014, 00:59:41

Titel: Hilfe bei Regex (Exclude?)
Beitrag von: FHEMAN am 24 November 2014, 00:59:41
Hallo, ich zerbreche mir jetzt seit 2,5 Stunden den Kopf:
Wie kann ich alle Nicht-Dummies greifen?

TuerFensterKontakte
TuerFensterKontakt.WZ.FensterL
TuerFensterKontakt.WZ.FensterL.Dummy


Folgende Idee funktioniert nicht:
TuerFensterKontakt[.].*(!Dummy).*

Dazu habe ich folgende Fragen:

Gute Nacht
Ron
Titel: Antw:Hilfe bei Regex (Exclude?)
Beitrag von: Phill am 24 November 2014, 10:22:20
Hi, ich denke deine Fragen kann man leicht durch etwas Internetrecherche lösen...
Aber trotzdem versuche ich dir mal zu helfen:

1. Ja, sogar mehrere.
(?!Dummy) # nur dann erfolgreich, wenn Dummy nicht folgt
(?<=Dummy) # nur dann erfolgreich, wenn Dummy nicht vorangeht
# und man kann das auch über Zeichenklassen lösen
[^D][^u][^m][^m][^y]


2. Mit escape. Eckige klammern werden als Zeichenklassen interpretiert. Also [abc] a oder b oder c\.

3. Es gelten zumindest die allgemeinen "Perl" RexExp Regeln.

Gruß
Titel: Antw:Hilfe bei Regex (Exclude?)
Beitrag von: FHEMAN am 11 Dezember 2014, 00:03:42
Hallo Phill,

danke, dass du trotz dem versuchst, mir zu helfen  ;)

1. das Exluden funktioniert nicht bei meinem o.g. Beispiel. Bsp-Notify TuerFensterKontakt[.].*(?!Dummy):(closed|open|.*ACK.*) lässt auch alle ".Dummy" durch:
TuerFensterKontakt.Kueche.Fenster.Dummy:closed
TuerFensterKontakt.Kueche.Fenster:closed

2. das Excapen mit Backslash funktioniert auch nicht. Ich muss den Umweg über [] gehen.

Noch irgendwelche Ideen?
Titel: Antw:Hilfe bei Regex (Exclude?)
Beitrag von: Ralf W. am 11 Dezember 2014, 11:05:14
Das sollte gehen:
(?!.*Dummy)TuerFensterKontakt.*:(closed|open|.*ACK.*)

MfG
Titel: Antw:Hilfe bei Regex (Exclude?)
Beitrag von: FHEMAN am 12 Dezember 2014, 13:08:41
Hallo Ralf, danke Dir. Ich werde heute Abend das Ergebnis sehen.
Wenn wir bei der Syntax sind, kannst Du mir bitte sagen, wann man ein ":" verwendet und wann nicht?
Im Eventmonitor taucht kein ":" auf und trotzdem muss ich scheinbar manchmal im notify damit arbeiten!?
Titel: Antw:Hilfe bei Regex (Exclude?)
Beitrag von: Ralf W. am 12 Dezember 2014, 17:39:05
@derron

Ich würde mich als FHEM-Anfänger bezeichnen. Ist schon recht heftig, was zu beachten ist. Aber FHEM ist geil ...

Deine Fragen beantwortet die FHEM Referenz:
<Suchmuster> ist entweder der Name des auslösenden ("triggernden") Gerätes oder die Kombination aus Gerät und auslösendem Ereignis (Event) Gerätename:Event.

MfG
Ralf
Titel: Antw:Hilfe bei Regex (Exclude?)
Beitrag von: FHEMAN am 17 Dezember 2014, 15:18:36
if (TFK =~ m"open") anstelle von
if ((TFK eq "open") || (TFK eq "open (to XYZ)"))