Reguläre Ausdrücke: letzte Fundstelle

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Reguläre Ausdrücke: letzte Fundstelle

Beitrag von ST22 (Specialist / 283 / 44 / 41 ) »
Hallo Zusammen,

es ist schon spät und ich weiß nicht weiter :shock:

Ich möchte in einem Textfeld das letzte Auftreten eines Suchmusters finden.
Text: '456789 domäne ztest #1213 #f789 # 456789'

Ich finde mit dem Tool DEMO_REGEX_TOY und folgendem Suchmuster '\#+[[:blank:]0-9]+'
die Stellen #1213 und # 456789.

Wie kann ich in meinem Programm dafür sorgen, dass ich nur die letzte Fundstelle zurück bekomme, bzw. noch besser exakt die letzte Fundstelle mit Leerzeichen überschreiben kann?
Wichtig wäre noch zu erwähnen, dass ich nach der letzten Raute alles numerische zurück bekommen möchte, und es zwischen der letzten Raute und dem numerischen Teilstring kein anderes Zeichen als SPACE geben darf, oder die Zahlen unmittelbar auf die letzte Raute folgen.

Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt :?

Schöne Grüße

Frank

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


Re: Reguläre Ausdrücke: letzte Fundstelle

Beitrag von ewx (Top Expert / 4913 / 332 / 653 ) »

Code: Alles auswählen.

DATA text TYPE string VALUE '456789 domäne ztest #1213 #f789 # 456789'.
DATA search TYPE string VALUE '\#+[[:blank:]0-9]+'.

FIND ALL OCCURRENCES OF REGEX search IN text RESULTS DATA(result).
In RESULT sind ZWEI Einträge... ;)

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
ST22


Re: Reguläre Ausdrücke: letzte Fundstelle

Beitrag von fr-g (ForumUser / 77 / 12 / 25 ) »
Du könntest hier auch mit einem negative lookahead arbeiten, der ausschließt, dass du denselben Suchstring noch einmal findest:

\#+[[:blank:]0-9]+(?!.*\#+[[:blank:]0-9]+)

Folgende Benutzer bedankten sich beim Autor fr-g für den Beitrag:
ST22


Re: Reguläre Ausdrücke: letzte Fundstelle

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »
Leider etwas zu spät, dennoch "negative look ahead":
(#[ \d]+)(?!.*#[ \d]+)

Folgende Benutzer bedankten sich beim Autor Dele für den Beitrag:
ST22


Re: Reguläre Ausdrücke: letzte Fundstelle

Beitrag von black_adept (Top Expert / 4158 / 136 / 959 ) »
Diese negativen Lookaheads bereiten mir immer Kopfschmerzen. Ich bevorzuge den Zeilenendeoperator:

Code: Alles auswählen.

FIND    REGEX '(#)(\s*\d*$)' IN s SUBMATCHES DATA(s1) DATA(s2).
REPLACE REGEX '(#)(\s*\d*$)' IN s WITH '$1'.
Das sollte das etwa machen was du willst. Wenn s kein String sondern ein char-Feld ist müsste vor das $ noch ein \s* gesetzt werden

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
ST22

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

2
Antw.
796
Views
reg.Ausdrücke beim SELECT
von msfox » 28.11.2023 09:28 • Verfasst in ABAP® für Anfänger
2
Antw.
3029
Views
Ausdrucke aus Testsystem kennzeichnen
von hsiebert » 13.11.2007 09:36 • Verfasst in Basis
9
Antw.
4949
Views
Vergleichen zwei Ausdrücke
von Nadine_2706 » 01.09.2011 07:41 • Verfasst in ABAP® für Anfänger
3
Antw.
2798
Views
ECC 6 -> Wasserzeichen global für alle Ausdrucke...
von marvin » 27.05.2008 12:52 • Verfasst in Basis
0
Antw.
1359
Views
Anzahl Ausdrucke vorgeben und sperren
von wyps » 23.07.2007 13:18 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

LSMW-Problem
vor 2 Tagen von mazu gelöst 5 / 1015
ATC Finding in Smartforms
vor 6 Tagen von sap_enthusiast 2 / 982

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

LSMW-Problem
vor 2 Tagen von mazu gelöst 5 / 1015
ATC Finding in Smartforms
vor 6 Tagen von sap_enthusiast 2 / 982

Unbeantwortete Forenbeiträge

SFP/SEGW - Fehler beim Rendering
letzen Monat von Manfred K. 1 / 86776
Benutzerdefinierte Felder PSP
January 2026 von Rabea1103 1 / 140040