Textauswertung bei der Erstellung von Regeln

  • Im Regelassistenten kann man bei den verschiedenen Regeln Felder einer Buchung analysieren. Dieses ist in aller Regel ein normaler Textvergleich. Dieses begrenzt die Flexibilität erheblich. Einige Einziehen Institutionen Buchen z.B. mit laufend sich ändernden Namen ab. Eine karitative Organisation hängt z.B. Quartal und Jahreszahl an seinen Namen. Einige Geschäfte haben unterschiedliche Namen, je nachdem, ob man per EC/Pin oder Lastschrift bezahlt.
    In anderen Fällen möchte ich aus dem Verwendungszweck Informationen herausfiltern (vgl. "Regel für Split aus Verwendungszweck").


    Für die Textvergleiche im Regelassistenten sollte die Möglichkeiten gegeben werden, reguläre Ausdrücke zu verwenden, wie sie in allen modernen Programmier- und Skriptsprachen gängig sind. Sie unterstützen benannte Gruppen, so dass man auf diese Weise die extrahierten Informationen den Datenfeldern zuordnen kann.


    Beispiel ():
    Buchung einer Versicherung mit folgenden Verwendungszweck für 2 Verträge:


    1234568 55,23
    45678 123,33


    Erstelle Split ...


    wenn eine Verwendungszweckzeile folgende Ausdruck erfüllt: "^1234568\s+(?P\d+,\d{2}\s*$)
    dann Kategorie "Anti-Schnarchversicherung" zuordnen
    wenn eine Verwendungszweckzeile folgende Ausdruck erfüllt: "^45678\s+(?P\d+,\d{2}\s*$)
    dann Kategorie "Kfz-Versicherung" zuordnen


    Die Syntax ist zugegebener maßen etwas kryptisch für Anfänger, gängige Beispiele ließen sich aber in der Dokumentation hinterlegen.
    Das Beispiel oben besagt
    Wenn am Zeilenanfang (^) die Versicherungsnummer (1234568) gefolgt von ein oder mehr Lehrzeichen (\s+) steht, dann folgt ein Betrag in der Form ein oder mehr Ziffern (\d+) gefolgt von einem Komma (,) und zwei Nachkommastellen (\d{2}). Dieser Betrag wird dem Buchungsdatensatzfeld BETRAG zugewiesen ( (?P ... ) ).


    Diese Funktion wäre super.</betrag></betrag></betrag>