# Beispiel-Regeln für die Dateiverwaltung # Diese Datei dient als Referenz - Regeln werden in der Web-UI konfiguriert # ============================================ # RECHNUNGEN # ============================================ sonepar_rechnung: name: "Sonepar Rechnung" prioritaet: 10 muster: text_match_any: - sonepar - "elektro großhandel" text_match: - rechnung extraktion: datum: regex: '(\d{2}[./]\d{2}[./]\d{4})' typ: datum format: "%d.%m.%Y" rechnungsnummer: regex: 'Rechnungsnummer[:\s]*(\d+)' betrag: regex: 'Gesamtbetrag[:\s]*([\d.,]+)\s*(?:EUR|€)' typ: betrag kategorie: wert: "Rechnung" ersteller: wert: "Sonepar" schema: "{datum} - {kategorie} - {ersteller} - {rechnungsnummer} - Material - {betrag} EUR.pdf" ziel_ordner: "/archiv/rechnungen/sonepar" wuerth_rechnung: name: "Würth Rechnung" prioritaet: 10 muster: text_match_any: - würth - wuerth text_match: - rechnung extraktion: datum: regex: '(\d{2}[./]\d{2}[./]\d{4})' typ: datum format: "%d.%m.%Y" rechnungsnummer: regex: '(?:Rechnungs?nummer|Beleg)[:\s]*([A-Z0-9-]+)' betrag: regex: '(?:Gesamtbetrag|Summe|Total)[:\s]*([\d.,]+)\s*(?:EUR|€)?' typ: betrag kategorie: wert: "Rechnung" ersteller: wert: "Würth" schema: "{datum} - {kategorie} - {ersteller} - {rechnungsnummer} - Material - {betrag} EUR.pdf" ziel_ordner: "/archiv/rechnungen/wuerth" amazon_rechnung: name: "Amazon Rechnung" prioritaet: 10 muster: text_match_any: - amazon - "Amazon EU S.à r.l." text_match: - rechnung extraktion: datum: regex: '(\d{2}[./]\d{2}[./]\d{4})' typ: datum format: "%d.%m.%Y" rechnungsnummer: regex: '(?:Rechnungsnummer|Invoice)[:\s]*([A-Z0-9-]+)' betrag: regex: '(?:Gesamtbetrag|Grand Total)[:\s]*([\d.,]+)\s*(?:EUR|€)?' typ: betrag kategorie: wert: "Rechnung" ersteller: wert: "Amazon" schema: "{datum} - {kategorie} - {ersteller} - {rechnungsnummer} - {betrag} EUR.pdf" ziel_ordner: "/archiv/rechnungen/amazon" allgemeine_rechnung: name: "Allgemeine Rechnung" prioritaet: 50 muster: text_match_any: - rechnung - invoice - faktura extraktion: datum: regex: '(\d{2}[./]\d{2}[./]\d{4})' typ: datum format: "%d.%m.%Y" rechnungsnummer: regex: '(?:Rechnungs?nummer|Rechnung\s*Nr\.?|Invoice|Beleg)[:\s#]*([A-Z0-9-]+)' betrag: regex: '(?:Gesamtbetrag|Summe|Total|Endbetrag|Rechnungsbetrag)[:\s]*([\d.,]+)\s*(?:EUR|€)?' typ: betrag kategorie: wert: "Rechnung" schema: "{datum} - {kategorie} - {rechnungsnummer} - {betrag} EUR.pdf" ziel_ordner: "/archiv/rechnungen/sonstige" # ============================================ # DOKUMENTE (nicht-wiederkehrend) # ============================================ zeugnis: name: "Zeugnis" prioritaet: 20 muster: text_match_any: - zeugnis - zertifikat - bescheinigung - certificate extraktion: typ: regex: '(Zeugnis|Zertifikat|Bescheinigung|Certificate)' aussteller: regex: '(?:ausgestellt von|issued by|Schule|Universität|Hochschule|Firma)[:\s]*([A-Za-zäöüÄÖÜß\s]+)' jahr: regex: '(20\d{2})' schema: "{typ} - {aussteller} - {jahr}.pdf" ziel_ordner: "/archiv/dokumente/zeugnisse" vertrag: name: "Vertrag" prioritaet: 20 muster: text_match_any: - vertrag - vereinbarung - contract - agreement extraktion: typ: wert: "Vertrag" partner: regex: '(?:zwischen|Vertragspartner|mit)[:\s]*([A-Za-zäöüÄÖÜß\s]+)' datum: regex: '(\d{2}[./]\d{2}[./]\d{4})' typ: datum format: "%d.%m.%Y" schema: "{typ} - {partner} - {datum}.pdf" ziel_ordner: "/archiv/dokumente/vertraege" # ============================================ # REGEX REFERENZ # ============================================ # # Häufige Muster: # # Datum (DD.MM.YYYY): (\d{2}[./]\d{2}[./]\d{4}) # Datum (YYYY-MM-DD): (\d{4}-\d{2}-\d{2}) # Betrag mit EUR: ([\d.,]+)\s*(?:EUR|€) # Rechnungsnummer: (?:Rechnung|Invoice)[:\s#]*([A-Z0-9-]+) # E-Mail: ([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}) # IBAN: ([A-Z]{2}\d{2}[A-Z0-9]{4}\d{7}([A-Z0-9]?){0,16}) # # Tipps: # - (?:...) = Nicht-einfangende Gruppe # - [:\s]* = Optional Doppelpunkt und/oder Leerzeichen # - \d+ = Eine oder mehr Ziffern # - [A-Z0-9-]+ = Buchstaben, Zahlen und Bindestriche