Hallo zusammen,
immer wieder werde ich gefragt ob und wie man bestimmte Text-Bedingungen im Regeleditor bewerkstelligen kann. Auch das Vereinfachen einer angewachsenen Expertenregel kann bei einer Vielzahl von Bedingungen helfen, denn ansonsten leidet die Übersicht und das Navigieren innerhalb des Regeleditors wird mühselig.
Tipp: Verwendet Reguläre Ausdrücke um mehrere Bedingungen in einem Regelknoten zu formulieren und macht euch zusätzliche Zeichenklassen zunutze um flexibler bei der Gestaltung eurer Suchbegriffe zu sein.
Beispiele:
(1.) Wenn das Wort "Rechnung" oder "Lieferschein" im Text vorkommt, dann...
Das Pipe-Symbol "|" ist dabei gleichbedeutend mit "oder". Damit lassen sich beliebig viele Begriffe miteinander verknüpfen, ohne dass man für jeden Begriff einen neuen Regelknoten erstellen muss.
(2.) Wenn das Wort "Artikel" und dann ein sich ändernder Artikelname und dann das Wort "bestellen" vorkommt, dann...
Der Punkt "." gefolgt von dem Sternchen "*" bedeutet, dass zwischen dem Wort "Artikel" und "bestellen" beliebige Zeichen in beliebiger Anzahl stehen dürfen. Das bedeutet, dass die Bedingung beispielsweise bei dem Satz "...können Sie den Artikel TEFAL-Toaster bestellen." erfüllt wäre.
(3.) Wenn das Wort "Rechnung" vorkommt, aber nicht das Wort "Rechnungsnummer", dann...
Die Zeichenklasse "\W" steht für ein Zeichen, das weder Buchstabe noch Zahl noch Unterstrich ist. Dazu zählt ein Leerzeichen oder auch ein Punkt. Da bei dem Wort "Rechnungsnummer" das erste Zeichen nach dem "Rechnung" ein "s" ist, ist die Bedingung in diesem Fall nicht erfüllt.
Sehr praktisch ist eine Regex auch dann wenn man HTML-E-Mails auf Textvorkommen prüfen möchte. Wurde bei der Erstellung der E-Mail beispielsweise eine HTML-Tabelle zur Formatierung verwendet, dann wird es unter Umständen schwierig nach dem gewünschten Test zu suchen:
Dieses Beispiel zeigt einen solchen Fall. Hier kann nicht nach "Zahlungsweise Vorkasse" gesucht werden, weil es sich letztendlich nicht um ein Leerzeichen zwischen den beiden gesuchten Wörtern handelt, auch wenn es so aussehen mag.
Eine in einem solchen Fall oft funktionierende Regex-Bedingung lautet "Zahlungsweise\sVorkasse". Das "\s" steht dabei für ein Leerzeichen, oder ein Tabulator, oder ein Zeilenumbruch und noch einige mehr.
Das sind nur einige Beispiele die euch Anregungen geben sollen in euren Textbedingungen Regexen zu verwenden
Einen ersten, einigermaßen verständlichen Einblick in die Verwendung von Regulären Ausdrücken gibt es bei Wikipedia: http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck
Wer sich intensiver mit dem Erstellen von Regulären Ausdrücken beschäftigen möchte dem sei eines der zahlreichen Programme zum einfacheren Erstellen nahegelegt. Diese Programme erlauben es Regexen in Echtzeit zu prüfen und auf zahlreiche Textvorlagen anzuwenden. Ich persönlich favorisiere den RegexBuddy.
Lieben Gruß