Neu Hilfe bei RegEX in ecoDMS benötigt, die Zweite!

MisterE

Aktives Mitglied
2. September 2022
10
2
Hallo Leute!
Nachdem mir bei einer ähnliche Problematik hier geholfen wurde, habe ich hier eine neue RegEX-Nuss zu knacken. Aus dem String "Summe der Zahlungen: + 6.706,05" will ich auf den Betrag "6.706,05" matchen.
Das Beste, was ich erreicht habe ist, mit "(?<=Summe der Zahlungen🙂\s*[^\d]*([0-9]+([.,][0-9]{2}))" auf " + 6.70" zu matchen.
ChatGPT, welches mir bei RegEX-Problematiken bis dato immer weiter helfen konnte, hat sich hier die Zähne ausgebissen. Habt Ihr vielleicht eine Lösung für mich?

LG Matthias
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Für "RegEx" gibt es keinen "Standard" i.S.v. "ich bzw. ChatGPT erstellt die RegExp jetzt so und dann muss das auch in einem anderen Programm so passen.
Aber die für dich passende RegEx kann man bestimmt rausfinden 🙂
Erwartet denn dein Programm POSIX RegEx oder PCRE oder was Eigenes? Ist das irgendwo dokumentiert?
 

MisterE

Aktives Mitglied
2. September 2022
10
2
Stimmt, ich vergas zu erwähnen, das ich die Lösung für EcoDMS brauche und das erwartet PCRE-Syntax. 🙂
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Also so richtig hab ich nicht verstanden, was du erreichen willst. Bzw. was mit dem Match dann weiter passieren soll, aber da fehlt mir auch der ganze EcoDMS Hintergrund.

Also wenn du wirklich nur auf das was hinter dem Pluszeichen matchen willst, musst du es ja gar nicht so verkomplizieren. Es würde ja (?<=Summe der Zahlungen: \+ )(.*) ausreichen.

Wenn du den Teil nach dem Pluszeichen auch prüfen willst (wie du es in deinem Beispiel ja auch machst), dann könntest du es wie folgt schreiben:
(?<=Summe der Zahlungen: \+ )(\d\.*\d*,\d{2})

Aber ein Tipp: bleib konstant in deinen Ausdrücken! Wieso schreibst du das Match für die Ziffern einmal als \d und ein anderes mal als [0-9]? Du machst es dir unnötig schwer und der Ausdrück wird komplizierter zu verstehen, wenn du verschiedene Formen benutzt. Wähle immer den kürzeren Ausdruck.
 
  • Gefällt mir
Reaktionen: MisterE

MisterE

Aktives Mitglied
2. September 2022
10
2
Also so richtig hab ich nicht verstanden, was du erreichen willst. Bzw. was mit dem Match dann weiter passieren soll, aber da fehlt mir auch der ganze EcoDMS Hintergrund.

Also wenn du wirklich nur auf das was hinter dem Pluszeichen matchen willst, musst du es ja gar nicht so verkomplizieren. Es würde ja (?<=Summe der Zahlungen: \+ )(.*) ausreichen.

Wenn du den Teil nach dem Pluszeichen auch prüfen willst (wie du es in deinem Beispiel ja auch machst), dann könntest du es wie folgt schreiben:
(?<=Summe der Zahlungen: \+ )(\d\.*\d*,\d{2})

Aber ein Tipp: bleib konstant in deinen Ausdrücken! Wieso schreibst du das Match für die Ziffern einmal als \d und ein anderes mal als [0-9]? Du machst es dir unnötig schwer und der Ausdrück wird komplizierter zu verstehen, wenn du verschiedene Formen benutzt. Wähle immer den kürzeren Ausdruck.
Vielen Dank für Deine zielführende Antwort!!
Zu meiner Ehrenrettung muß ich sagen, dass ich im Bezug auf RegEX nur rudimentäre Kenntnisse habe und praktisch alles durch "trial and error" anpasse. Um Dokumente in EcoDMS komfortabel automatisch zu klassifizieren kommt man da leider nicht herum. Vielen Dank nochmal!
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.873
562
Vielen Dank für Deine zielführende Antwort!!
Zu meiner Ehrenrettung muß ich sagen, dass ich im Bezug auf RegEX nur rudimentäre Kenntnisse habe und praktisch alles durch "trial and error" anpasse.
So tasten sich viele an unbekannte Themen ran, aber - ein Tipp - da macht man es sich unnötig schwer und womöglich kommt man auf Lösungen , die nur zufällig funktionieren, aber eigentlich nicht wirklich richtig sind.
Gerade im IT Bereich kommt man meist viel schneller ans Ziel, wenn man sich an offizielle Dokus hält 😉


Um Dokumente in EcoDMS komfortabel automatisch zu klassifizieren kommt man da leider nicht herum. Vielen Dank nochmal!
Das ist ja jetzt noch mehr ein starkes Argument dafür, sich mehr als nur rudimentär mit den Regexpr zu befassen 😉
 
  • Gefällt mir
Reaktionen: MisterE

Ähnliche Themen