Beantwortet Hilfe bei RegEX in ecoDMS benötigt

MisterE

Aktives Mitglied
2. September 2022
10
2
Hallo Leute!
Ich brauch etwas Hilfe bei einem Regex-Problem. Es soll bei einem Rechnungsformular der Rechnungsbetrag ausgelesen werden. Da dieser, abhängig von der Anzahl der Rechnungsposten immer wo anders steht, liest das OCR alles Mögliche aus, aber selten den korrekten Betrag. Deshalb muß mit Regex nachgeholfen werden. Ich möchte den Wert nach "Gesamtbetrag" vollständig auslesen. Leider macht mir das Tausender-Trennzeichen einen Strich durch mein Ansinnen. Den Regex-Ausdruck (?<=Gesamtsumme([\s]*))(\d{1,6})([\.,]\d{2}) habe ich mir auch nur aus dem Netz kopiert und im Try-and-Error-Verfahren so weit gebracht, dass er die richtige Zeile erkennt. Ich bekomme es allerdings nicht hin, dass er immer den kompletten Betrag erkennt. Leider habe ich (noch) absolut rudimentäre RegEX-Kenntnisse.
Habt Ihr einen Lösungsvorschlag?
 

Anhänge

  • 304796503_4907167579385286_4761828987751436908_n.jpg
    304796503_4907167579385286_4761828987751436908_n.jpg
    75,9 KB · Aufrufe: 5

sebjo82

Sehr aktives Mitglied
3. Juni 2021
697
211
(Gesamtsumme)\s*[\d\.]*\,\d{2}\s\€

Unbenannt.PNG

Matcht zumindest.

"Mastering Regular Expressions" - Jeffrey E.F. Friedl (Autor)
liegt bei mir aber auch noch unstudiert herum #soon
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: MisterE

MisterE

Aktives Mitglied
2. September 2022
10
2
Vielen Dank für die schnellen Antworten! Ich werde das morgen gleich einmal testen.
Da es gerade so gut läuft taucht am Horizont schon das nächste Problem auf: in einem zu scannenden Formular ist die Filiale als Nummer dargestellt. Ich möchte ecoDMS aber gern den zugehörigen Ort übergeben ( 1 = Ort1; 2 = Ort2; usw) das sollte doch auch mit regex möglich sein, oder?
 
  • Gefällt mir
Reaktionen: Karalanta

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Mir war jetzt garicht bewußt, dass man bei diesen Dingen mit RegularExpressions arbeiten muss... 😌?

Wie auch immer, jedenfalls ist das IF…THEN…ELSE grundsätzlich so: (?(A)X|Y)
Dieses Beispiel würde bedeuten: "Wenn Ausdruck A wahr ist, dann X, ansonsten Y"
 

MisterE

Aktives Mitglied
2. September 2022
10
2
Deine Zensurstreifen sind transparent.
Und wo soll der Ort hergenommen werden? Du könntest dir den Ort auch gleich auf das Dokument schreiben lassen von der Wawi. Warum willst du das nachträglich machen?

❌Diese Problematik hat sich inzwischen erledigt, ich habe die Struktur im ecoDMS anpassen können.

Wieso sehe ich die Zensurstreifen schwarz und Du transparent?😳 Ist in dem Fall aber auch nicht so tragisch.
Der Grund warum ich so umständlich agiere ist folgender: Ich bekomme nur einen Platzhalter mit der Filialnummer oder mit dem vollständigen Filialnamen. Das ist mir eigentlich zu lang, ich möchte eigentlich nur Kürzel verwenden. Da wir nur 6 Filialen haben ist meine naive Vorstellung die Kürzel in dem Ausdruck unterzubringen, ungefähr so: if "1" then "Fil_A", if "2" then "Fil_B", usw. Geht das?
 
Zuletzt bearbeitet:

sebjo82

Sehr aktives Mitglied
3. Juni 2021
697
211
so richtig will es noch nicht funzen😬 Wo könnte ich noch dran drehen? Habe mal das Formular angehängt...
Probier das hier mal
(?<=Gesamtsumme)\s*[\d\.]*\,\d{2}

Unbenannt.PNG

Du kannst auch
(?<=Gesamtsumme\s)[\d\.]*\,\d{2}
benutzen aber hier hast du das Problem, dass er nur ein \s nach "Gesamtsumme" akzeptiert. Dafür matcht er aber die Zahl sauberer:

Unbenannt.PNG

Wenn du sehr viel Glück hast, könnte es sein, dass die ecoDMS RegEx-Integration dies hier unterstützt:
(?<=Gesamtsumme\s{1,2})[\d\.]*\,\d{2}
Höchstwahrscheinlich aber nicht
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: MisterE

MisterE

Aktives Mitglied
2. September 2022
10
2
Probier das hier mal
(?<=Gesamtsumme)\s*[\d\.]*\,\d{2}

Den Anhang 88039 betrachten

Du kannst auch
(?<=Gesamtsumme\s)[\d\.]*\,\d{2}
benutzen aber hier hast du das Problem, dass er nur ein \s nach "Gesamtsumme" akzeptiert. Dafür matcht er aber die Zahl sauberer:

Den Anhang 88048 betrachten

Wenn du sehr viel Glück hast, könnte es sein, dass die ecoDMS RegEx-Integration dies hier unterstützt:
(?<=Gesamtsumme\s{1,2})[\d\.]*\,\d{2}
Höchstwahrscheinlich aber nicht
DANKE!!! Vorschlag 2 hat auf anhieb gematcht!
 
  • Gefällt mir
Reaktionen: sebjo82

Ähnliche Themen