Diese Seite liefert praxiserprobte Reguläre Ausdrücke (PCRE/Java), um in ecoDMS genau definierte Werte aus Belegen zu extrahieren – z. B. Datum, Gesamtbetrag, Nettobetrag, Umsatzsteuer-Betrag, USt-IdNr., Steuernummer, IBAN, Belegnummer u. a. Jedes Muster enthält genau eine Capture‑Gruppe mit dem Zielwert.

1. Allgemeine Hinweise & Flags

  • Flags: in ecoDMS meist i (case‑insensitive) und m (multiline) aktivieren. Wenn Werte eine Zeile tiefer stehen, zusätzlich s (DOTALL) oder die unten genutzten (?s:.{0,40}?)‑Zwischenräume verwenden.
  • Eine Capture‑Gruppe: Die Muster sind so gebaut, dass Gruppe 1 immer der gesuchte Wert ist (ohne Label).
  • Währungen: / EUR vor/nach dem Betrag sind optional und stehen außerhalb der Gruppe.
  • Negative/Klammern: Für z. B. Gutschriften kannst du die Betragskomponente um optionale Klammern erweitern (siehe Beispiele).

2. Betrag – Basisbaustein

Dieses Fragment wird in mehreren Mustern verwendet (DE‑Format, Tausenderpunkt/Leerzeichen, Dezimalkomma, erlaubt auch ,- bzw. ,–):

([-+]?(?:\d{1,3}(?:[.\s]\d{3})*|\d+)(?:,\d{2}|,-|,–)?)
Variante mit Klammern als negative Beträge
\(?\s*([-+]?(?:\d{1,3}(?:[.\s]\d{3})*|\d+)(?:,\d{2}|,-|,–)?)\s*\)?

3. Datum

a) 31.12.2025 / 31-12-2025 / 31/12/2025

(?i)\b(?:rechnungsdatum|ausstellungsdatum|datum)\b[^\d]{0,20}?(\d{1,2}[.\-/]\d{1,2}[.\-/](?:19|20)\d{2})\b

b) 2025-12-31 / 2025.12.31

(?i)\b(?:rechnungsdatum|ausstellungsdatum|datum)\b[^\d]{0,20}?((?:19|20)\d{2}[.\-/]\d{1,2}[.\-/]\d{1,2})\b

c) 31. Dezember 2025 (Monatsname)

(?i)\b(?:rechnungsdatum|ausstellungsdatum|datum)\b[^\d]{0,20}?(\d{1,2}\.\s*(?:januar|februar|märz|maerz|april|mai|juni|juli|august|september|oktober|november|dezember)\s*(?:19|20)\d{2})

Tipp: Wenn Label und Wert über Zeilenumbrüche getrennt sind, ersetze [^\d]{0,20}? durch (?s:.{0,40}?).

4. Gesamtbetrag / Zahlbetrag (Brutto)

(?i)\b(?:gesamt(?:betrag)?|gesamtsumme|summe\s*brutto|zu\s*zahlen|zahlbetrag)\b[^0-9€eur]{0,30}?(?:€|eur)?\s*([-+]?(?:\d{1,3}(?:[.\s]\d{3})*|\d+)(?:,\d{2}|,-|,–)?)\s*(?:€|eur)?

5. Rechnungsbetrag (wenn explizit so bezeichnet)

(?i)\b(?:rechnungsbetrag)\b[^0-9€eur]{0,30}?(?:€|eur)?\s*([-+]?(?:\d{1,3}(?:[.\s]\d{3})*|\d+)(?:,\d{2}|,-|,–)?)\s*(?:€|eur)?

6. Nettobetrag / Zwischensumme

(?i)\b(?:netto(?:betrag)?|zwischensumme|summe\s*netto)\b[^0-9€eur]{0,30}?(?:€|eur)?\s*([-+]?(?:\d{1,3}(?:[.\s]\d{3})*|\d+)(?:,\d{2}|,-|,–)?)\s*(?:€|eur)?

7. USt./MwSt.-Betrag

(?i)\b(?:mwst|mehrwertsteuer|umsatzsteuer|ust\.?|ust\.?-betrag)\b[^0-9€eur]{0,30}?(?:€|eur)?\s*([-+]?(?:\d{1,3}(?:[.\s]\d{3})*|\d+)(?:,\d{2}|,-|,–)?)\s*(?:€|eur)?
Variante mit Prozentangabe vor dem Betrag (z. B. „MwSt 19%: 12,34“)
(?i)\b(?:mwst|umsatzsteuer|ust\.?)[^%\d]{0,15}?\d{1,2}\s*%[^0-9€]{0,15}?(?:€|eur)?\s*([-+]?(?:\d{1,3}(?:[.\s]\d{3})*|\d+)(?:,\d{2}|,-|,–)?)

8. USt-IdNr. / VAT-ID

a) Deutschland

(?i)\b(?:ust-?id(?:nr\.?)?|umsatzsteuer-?identifikationsnummer|vat[-\s]?id)\b[^\w]{0,10}?(DE\d{9})\b

b) EU-weit (häufige Formate, inkl. DE)

(?i)\b(ATU\d{8}|BE0?\d{9,10}|BG\d{9,10}|CY\d{8}[A-Z]|CZ\d{8,10}|DE\d{9}|DK\d{8}|EE\d{9}|EL\d{9}|ES[A-Z0-9]\d{7}[A-Z0-9]|FI\d{8}|FR[0-9A-Z]{2}\d{9}|HR\d{11}|HU\d{8}|IE\d{7}[A-W][A-IJ-Z]|IT\d{11}|LT\d{9,12}|LU\d{8}|LV\d{11}|MT\d{8}|NL\d{9}B\d{2}|PL\d{10}|PT\d{9}|RO\d{2,10}|SE\d{12}|SI\d{8}|SK\d{10})\b

9. Steuernummer (Deutschland – häufige Schreibweisen)

Erfasst typische Muster wie 123/4567/8901, 12/345/67890 oder kompaktes Format 12345678901:

(?i)\b(?:steuer\s?nr\.?|steuernummer|st-?nr\.?)[^0-9]{0,15}?((?:\d{1,3}/\d{3,4}/\d{2,5})|(?:\d{2}/\d{3}/\d{4,5})|(?:\d{10,11}))\b

10. IBAN

a) Deutschland (schnell & pragmatisch)

(?i)\b(?:iban)\b[^A-Z0-9]{0,15}?(DE\d{20})\b

b) EU‑weit (generisch)

(?i)\b(?:iban)\b[^A-Z0-9]{0,15}?([A-Z]{2}\d{2}[A-Z0-9]{10,30})\b

11. Beleg-/Rechnungsnummer

Erfasst gängige Schlüsselwörter; die Gruppe enthält die Nummer selbst (alphanumerisch, erlaubt -_/.):

(?i)\b(?:rechnungs?-?nr\.?|rechnungsnummer|beleg-?nr\.?|belegnummer|rechnung)\b[^A-Z0-9]{0,20}?([A-Z0-9][A-Z0-9\-_.\/]{3,})

12. Zahlungsdatum

(?i)\b(?:zahlungsdatum|bezahlt\s*am|valuta)\b[^\d]{0,20}?(\d{1,2}[.\-/]\d{1,2}[.\-/](?:19|20)\d{2})\b

13. Steuersatz (%-Angaben)

Extrahiert den Prozentsatz (z. B. 19%, 7%) – Gruppe enthält nur die Zahl mit Prozentzeichen:

(?i)\b(?:mwst|ust\.?|umsatzsteuer|steuer)\b[^%\d]{0,15}?(\d{1,2}\s?%)

14. Generischer €‑Betrag (Fallback ohne Label)

(?i)(?:\b(?:€|eur)\s*)?([-+]?(?:\d{1,3}(?:[.\s]\d{3})*|\d+)(?:,\d{2}|,-|,–)?)\s*(?:€|eur)\b

15. ecoDMS‑Tipps & OCR‑Robustheit

  • Zwischenräume anpassen: Die Platzhalter [^...] bzw. (?s:.{0,40}?) kannst du je nach Layout auf 0,60 o. ä. erhöhen.
  • Zeilenumbrüche: Bei OCR entstehen oft weiche Umbrüche – setze Flag s oder nutze die DOTALL-Varianten oben.
  • Nur Gruppe 1: Achte beim Einrichten in ecoDMS darauf, dass immer die erste Gruppe den Wert liefert.
  • Mehrsprachige Belege: Ergänze bei Bedarf weitere Labels (z. B. invoice date, total, VAT, tax), die Betrags-/Datumsbausteine bleiben identisch.
  • Tests: Pro Dokumententyp 2–3 echte Belege testen; bei Fehltreffern zielgerichtet das jeweilige Label‑Set erweitern.

Fragen oder Sonderfälle? Schreib uns an mail@design-company.de – gern passen wir die Muster auf eure Belege an (Gutschriften, mehrere Währungen, spezielle Layouts usw.).