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 / 3943 / 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.
5421
Views
reguläre Ausdrücke
von snooze » 23.08.2005 11:05 • Verfasst in ABAP® Core
3
Antw.
2279
Views
Reguläre Ausdrücke
von jaytee » 05.10.2005 11:15 • Verfasst in ABAP® für Anfänger
1
Antw.
1097
Views
Anzahl Ausdrucke
von sormzx » 23.11.2005 14:14 • Verfasst in Sales and Distribution
5
Antw.
1936
Views
Logische Ausdrücke
von Namp » 17.02.2006 10:09 • Verfasst in SAP - Allgemeines
2
Antw.
160
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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 255

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

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 255

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140