die sich in das Regelsystem perfekt einarbeiten lässt. (Mit Erweiterung der Rules auf ein
2-Dimensionales Array).
Funktionsweise des LUA in den Rules:
nehmen wir an, wir haben eine Matrix mit dem folgenden Inhalt:
12 neue Mails erhalten
14 neue RSS-Feeds erhalten
mit folgendem Ausdruck:
(..) neue (.*?) erhalten.
ergibt sich als Resultatsmatrix:
LC | 1 | 2
1 | 12 | Mails
2 | 14 | RSS Feeds.
Die Regel kann nun lauten: Vergleich: gt IDL(ine): 2 IDC: 1 mit Wert "5"
Sprich: wenn der Wert aus Zeile 2, Spalte 1 größer 5 ist dann ist das Ergebnis wahr!
=> Ergebnis aus der neuen Rules-Definition
Wird nun der Typ auf "LUAC" eingestellt, so kann unter Code (unter Attribute "LUA"):
folgendermaßen lauten:
(Match[1][1] > 1) => Die Zielmatrix wird an LUA übertragen und auf den Wert >1
geprüft. Ist das Ergebnis wahr, so wird True zurückgeliefert.
Das gesamte Regex-Array wird an LUA übertragen und steht unter "Match"
zur Verfügung. der Index beginnt ab 1 (Spalte und Zeile).
Match[1][1] bezieht sich also auf "12" aus Zeile1, Spalte 1.
der Ausdruck aus der internen Auswertung kann mit Result abgerufen
und verarbeitet werden. Steht also im LUA-Code Result > 1 dann wird
wahr zurückgegeben, wenn sich das Ergebnis aus unserem Regex-Ausdruck
IDL 2, IDC 1 größer als 1 ist (Result > 1)
Der Typ kann ebenfalls "LUAF" heißen, was bedeutet dass unter LUA ein
Dateiname des zu ladenden LUA-Codes enthalten ist.
Bei Auswahl eines LUA-Typen wird der interne Vergleich nicht angewendet !
(Vergleich + Wert) wird ignoriert !
Aufgrund des LUA-Codes mit Vergleichen, wird der LUA-Code in den Unterknoten
LUA in ein CDATA-Segment gekapselt:
<Rule IDC="1" IDL="1" Type="LUA">
<LUA>
<![CDATA[
Result = (Match[1][1] < 5)
]]>
</LUA>
![]() |
| Bildunterschrift hinzufügen |

Keine Kommentare:
Kommentar veröffentlichen