in zeichenkette erster Treffer eines beliebigen Buchstaben

Getting started ... Alles für einen gelungenen Start.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

in zeichenkette erster Treffer eines beliebigen Buchstaben

Beitrag von meistercoach (ForumUser / 22 / 13 / 0 ) »
Hallo alle zusammen,

ich habe folgendes Problem. Ich habe ein Feld mit Zahlen und Buchstaben
BSP: "12345 Abcd" oder "12ABC" oder "564785 CFD"

Wie kann ich ermitteln, an welches Stelle des Feldinhaltes der erste (beliebige) Buchstabe kommt.
Am Ende möchte ich eine Ausgabe in 2 Felder (alle Zahlen und alle restlichen Feldinhalte) erhalten.

Grüße Christian

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


Re: in zeichenkette erster Treffer eines beliebigen Buchstab

Beitrag von black_adept (Top Expert / 4099 / 128 / 941 ) »

Code: Alles auswählen.

FIND REGEX '(\d*)(\D*)' IN feld SUBMATCHES feld1 feld2.

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

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: in zeichenkette erster Treffer eines beliebigen Buchstab

Beitrag von meistercoach (ForumUser / 22 / 13 / 0 ) »
Vielen Dank.

Aber so ganz komme ich damit leider noch nicht klar.

ich habe derzeit folgendes gemacht:
lv_t steht für mein Feldinhalt

DATA: lv_t type c LENGTH 50,
lv_t1 type c LENGTH 50,
lv_t2 type c LENGTH 50.

lv_t1 = substring_before(
val = lv_t
regex = '(\d*)(\D*)'
).

lv_t2 = substring_after(
val = lv_t
regex = '(\d*)(\D*)'
).

Das ganze läuft zwar fehlerfrei durch , jedoch sind die Felder lv_t1 und lv_t2 leer, obwohl lv_t gefüllt ist.

Übergebe ich noch einen len Parameter
( lv_t2 = substring_after(
val = lv_t
regex = '(\d*)(\D*)'
len = 1). dann bricht der Lauf immer mit einem Fehler ab, unabhängig welcher Zahl hinter len steht.

Was muss ich noch ändern?

Re: in zeichenkette erster Treffer eines beliebigen Buchstab

Beitrag von fr-g (ForumUser / 76 / 12 / 25 ) »
So wie ich black_adepts Lösung verstanden habe, benötigst du die substring-Funktionen doch gar nicht, da du die Substrings schon in den Submatches hast ;)
Evtl. musst du dir noch überlegen, wie du mit space umgehst....ob die mit zu den Zahlen gehören:

Code: Alles auswählen.

FIND REGEX '(\d*)(\D*)' IN lv_t SUBMATCHES lv_t1 lv_t2.
So wie du es geschrieben hast, bleiben deine Ergebnisse leer, weil der Regex immer den ganzen String (lv_t) greift, es also weder einen substring_before noch substring_after gibt.

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


Seite 1 von 1

Vergleichbare Themen

3
Antw.
2735
Views
Wie Zeichenkette bei Buchstaben trennen?
von samson » 29.01.2008 13:33 • Verfasst in ABAP® für Anfänger
4
Antw.
3084
Views
Erster und letzten Datensatz eines Reports
von sacair » 25.06.2009 10:09 • Verfasst in ABAP® für Anfänger
2
Antw.
1373
Views
Alle Knoten von einem Baum bei erster Anzeige aufklappen
von cuncon » 08.11.2018 09:32 • Verfasst in ABAP® für Anfänger
0
Antw.
752
Views
Beliebigen Feldinhalt auf Gültigkeit prüfen 2.0
von Saftladen » 05.01.2024 10:57 • Verfasst in ABAP® Core
5
Antw.
3516
Views
Beliebigen Feldinhalt auf Gültigkeit prüfen
von ralf.wenzel » 07.02.2015 13:05 • Verfasst in ABAP® Core

Über diesen Beitrag


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

Aktuelle Forenbeiträge

Regex in where
vor 25 Minuten von tar 8 / 172
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1487

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

Regex in where
vor 25 Minuten von tar 8 / 172
Daten an Tabelle binden
Gestern von Bright4.5 3 / 1487

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9822