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 / 274 / 40 / 40 ) »
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 / 4784 / 294 / 628 ) »

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 / 76 / 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 / 3946 / 105 / 886 ) »
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

7
Antw.
5423
Views
reguläre Ausdrücke
von snooze » 23.08.2005 11:05 • Verfasst in ABAP® Core
3
Antw.
2283
Views
Reguläre Ausdrücke
von jaytee » 05.10.2005 11:15 • Verfasst in ABAP® für Anfänger
1
Antw.
1100
Views
Anzahl Ausdrucke
von sormzx » 23.11.2005 14:14 • Verfasst in Sales and Distribution
5
Antw.
1938
Views
Logische Ausdrücke
von Namp » 17.02.2006 10:09 • Verfasst in SAP - Allgemeines
2
Antw.
168
Views
reg.Ausdrücke beim SELECT
von msfox » 28.11.2023 09:28 • Verfasst in ABAP® für Anfänger

Ü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

Fiori App aus dem Launchpad aufrufen
vor einer Stunde von Bright4.5 2 / 8
alv_grid aktualisieren
vor 3 Stunden von Egzon gelöst 4 / 80
SELECT CHAR16 in CHAR12-Feld
vor 12 Stunden von Shortcut IT 3 / 42

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

Fiori App aus dem Launchpad aufrufen
vor einer Stunde von Bright4.5 2 / 8
alv_grid aktualisieren
vor 3 Stunden von Egzon gelöst 4 / 80
SELECT CHAR16 in CHAR12-Feld
vor 12 Stunden von Shortcut IT 3 / 42

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Wochen von Lucyalison 1 / 134
Group Items auf einer Filterbar
vor 5 Wochen von Bright4.5 1 / 170