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.
3969
Views
REGEX lookahead
von ewx » 09.05.2012 11:26 • Verfasst in ABAP® Core
7
Antw.
5298
Views
Regex in where
von edwin » 28.11.2024 23:13 • Verfasst in ABAP® Core
12
Antw.
10545
Views
Regex für /xA0
von Thomas R. » 13.11.2013 12:13 • Verfasst in ABAP® für Anfänger
1
Antw.
2626
Views
XML Parser mit REGEX
von Adrian » 27.12.2013 09:23 • Verfasst in ABAP® für Anfänger
17
Antw.
6006
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

IF mit AND und OR
vor einer Woche von GastX 6 / 7748
Meine Inbox
vor einer Woche von Rabea1103 1 / 5668
PCL2 Cluster auslesen
vor einer Woche von DeathAndPain 2 / 6861
FUBA 'HR_INFOTYPES_OPERATION'
vor einer Woche von Bright4.5 3 / 12296

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

IF mit AND und OR
vor einer Woche von GastX 6 / 7748
Meine Inbox
vor einer Woche von Rabea1103 1 / 5668
PCL2 Cluster auslesen
vor einer Woche von DeathAndPain 2 / 6861
FUBA 'HR_INFOTYPES_OPERATION'
vor einer Woche von Bright4.5 3 / 12296