REGEX Lookahead/Lookbehind/Lookaround

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

REGEX Lookahead/Lookbehind/Lookaround

Beitrag von jani80k (ForumUser / 2 / 0 / 0 ) »
Hallo zusammen,

ich benutze schon länger REGEX, kenne es aus anderen Programmiersprachen, finde die Implementierung unter ABAP 7.50 aber etwas mau.

Es gibt leider kein Lookbehind. Es gibt lediglich ein positives und negatives Lookahead.

positiv (gefolgt von):
Input: blablabla
Regex: blabla(?=bla)
Match: blablabla

negativ (nicht gefolgt von):
Input: blab blal blaa
Regex: bla(?!b)
Match: blab blal blaa

Leider kann man nicht wie bei anderen Programmiersprachen das (?=...) vor dem Wort positionieren, das funktioniert dann nicht.

Dadurch ist es nicht möglich, das direkte Match zu verwenden, sondern ich muss mit Subgruppen arbeiten und hier dann die nicht gewünschten mit dem Operator (?:..) ausschließen.

Beispiel: ein beliebiger Barcode enthält die Zeichenfolge '$N:' dann folge ein Nachname und abschließend ein '$'.

Input: hier steht etwas$V:Hans-Herrman$N:Meier$A:21$hier steht etwas
Regex: (?:\$N\:)([a-zA-Z-]+)(?:\$)
Match: hier steht etwas$V:Hans-Herrman$N:Meier$A:21$hier steht etwas
1. Subgruppe: Meier

Ich würde mir wünschen, dass (?=\$N\:)([a-zA-Z-]+)(?=\$) das direkte Match 'Meier' liefer und ich ohne Subgruppen arbeiten muss. Das scheint aber nicht zu funktionieren (Quelle: Report DEMO_REGEX_TOY).

Kennt jemand Abhilfe?

Gruß
Jani

SAP DOKU Quellen: Untergruppen mit Registierung, Vorausschaubedingung

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: REGEX Lookahead/Lookbehind/Lookaround

Beitrag von fr-g (ForumUser / 76 / 12 / 25 ) »
Mehr als du habe ich bisher auch nicht herausgefunden ;) Das scheint nicht zu gehen...für mich war der Behelf mit (?:...) und Submatches aber bisher auch ausreichend:
(?:\$N\:)([a-zA-Z-]+)(?=\$)

Die ABAP-Doku gibt bis auf den Hinweis, dass (? ...) für "future enhancements" reserviert ist, nichts diesbezüglich her:
https://help.sap.com/doc/abapdocu_750_i ... search.htm

Re: REGEX Lookahead/Lookbehind/Lookaround

Beitrag von jani80k (ForumUser / 2 / 0 / 0 ) »
kurzer Einschub:
ABAP scheint in C++ programmiert zu sein. SAP hat scheinbar für Regex einfach eine Library eingebunden und benutzt Teile davon. Von 7.50 auf 7.51 wurde in der Doku zumindest eine neuere Version dieser Library (wenn auch nicht die neueste) verlinkt.

Doku 7.50

Doku 7.51

(Link ganz unten auf "BOOST Library")

Ob das ein Indiz dafür ist, dass sich etwas tut (Features in ABAP sind diesbzgl. keine neuen hinzugekommen) oder ob man einfach eine neuere Version wegen einem Versionsupgrade des C++ Compilers nehmen musste, sei dahingestellt.

Seite 1 von 1

Vergleichbare Themen

5
Antw.
3911
Views
REGEX lookahead
von ewx » 09.05.2012 11:26 • Verfasst in ABAP® Core
7
Antw.
2592
Views
Regex in where
von edwin » 28.11.2024 23:13 • Verfasst in ABAP® Core
12
Antw.
10075
Views
Regex für /xA0
von Thomas R. » 13.11.2013 12:13 • Verfasst in ABAP® für Anfänger
1
Antw.
2409
Views
XML Parser mit REGEX
von Adrian » 27.12.2013 09:23 • Verfasst in ABAP® für Anfänger
17
Antw.
5068
Views
Regex in FIND
von hugo.data » 22.10.2018 15:33 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

OPD Druck im SPOOL
vor 32 Minuten von Manfred K. 1 / 4
Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1794
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2332

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

OPD Druck im SPOOL
vor 32 Minuten von Manfred K. 1 / 4
Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1794
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2332

Unbeantwortete Forenbeiträge

OPD Druck im SPOOL
vor 32 Minuten von Manfred K. 1 / 4
Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 370
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 977
MS-Word als Editor
letzen Monat von tekko 1 / 4482