Hallo,
ich habe folgendes notify definiert:
-----------------------------------------
Andreas[^X]|Hanna[^X] {
Log 1, "*** Name: $NAME Event: $EVENT"
}
----------------------------------------
Es soll bei Ereignissen "Andreas" oder "Hanna" aktiv werden, aber nicht bei "AndreasX" oder "HannaX"
Das notify reagiert aber nur bei "Andreas" richtig, "Hanna" wird ignoriert.
Vertausche ich so, dass Hanna[^X] am Anfang, vor dem "|" steht, ist es genau anders rum.
Was mache ich falsch`?
Danke im Voraus!
Andreas
Nimm doch einfach:
Andreas|Hanna {}
Gruß
Dan
Hilft mir nix, weil es 2 Ereignisse gibt: Hanna und HannaX
Außerdem würde ich gerne wissen, was daran falsch ist.
Zitat von: Andi.Riese am 03 Mai 2017, 10:54:46
Hilft mir nix, weil es 2 Ereignisse gibt: Hanna und HannaX
Ja, aber Andreas|Hanna dürfte bei HannaX nicht matchen.
Zitat
Außerdem würde ich gerne wissen, was daran falsch ist.
Ich bin mir nicht ganz sicher aber ich glaube, dass Deine Angabe
Andreas[^X]|Hanna[^X]
...implizit so geklammert wird:
Andreas([^X]|Hanna)[^X]
D.h. es matcht auf alles, was mit Andreas anfängt und danach zweimal kein X hat und auf alles, was mit AndreasHanna anfängt und danach kein X hat.
Also z.B. auf:
Andreas
AndreasY
AndreasYY
AndreasHanna
AndreasHannaY
Das hier müsste das tun, was Du willst:
(Andreas[^X])|(Hanna)[^X])
Ich bin aber auch kein echter RegEx-Held, das kann also auch falsch sein.
...wobei das halt auch auf AndreasY matchen würde, was Du vielleicht nicht willst. Dans Vorschlag ware da einfacher und meiner Meinung nach besser.
Gruß,
Thorsten
Zitat von: DeeSPe am 03 Mai 2017, 10:41:11
Nimm doch einfach:
Andreas|Hanna {}
Gruß
Dan
Bin mir ziemlich sicher dass das wie gewünscht funktioniert!
Gruß
Dan
P.S. ^ und $ werden beim Matching ergänzt, also kommt heraus: m/^Andreas|Hanna$/
Das matcht auch nur auf Andreas und/oder Hanna.
https://regex101.com/
Gibt Dir da auch Recht.
Grüße
(Andreas^X)|(Hanna^X)
macht anscheinend das, was ich wollte.
Danke!