* https://regex101.com/
* 12345 Berlin
* D12345 Berlin
* D-12345 Berlin
* D 12345 Berlin
* d12345 Berlin
* d-12345 Berlin
* d 12345 Berlin
* D-12345 Berlin-Tegel
* D-12345 Berlin (Bezirk Tegel)
DATA: lv_in TYPE string VALUE 'D-12345 Berlin (Bezirk Tegel)'.
DATA(matcher) = cl_abap_matcher=>create( pattern = '^(?:[Dd][- ]?)?\d{5}\s'
text = lv_in
ignore_case = abap_true ).
DATA(it_matches) = matcher->find_all( ).
IF NOT it_matches IS INITIAL.
* der erste Eintrag sollte die PLZ sein
DATA(lv_plz) = it_matches[ 1 ].
* PLZ
WRITE: / substring( val = lv_in
off = lv_plz-offset
len = lv_plz-length - 1 ).
* Ort
WRITE: / substring( val = lv_in
off = lv_plz-length
len = strlen( lv_in ) - lv_plz-length ).
ENDIF.
Kategorien
-
Neueste Beiträge
- [ABAP] Workflow: Workitems suchen
- [ABAP] Business Partner (BP) anhand des SAP-Usernamens finden
- [ABAP] Popup zur Datumsauswahl
- [Linux] Übersicht Konfigurations-, Initialisierungs- und Skriptdateien
- Linux-Links
- Rund 12% der Krebserkrankungen offensichtlich durch Infektionen verursacht
- [ABAP] Emails versenden mit cl_bcs_mail_message
- [SAP] ST05 / ST12 Traces
- [SAP] Automatische Buchungen: Vorgangsschlüssel zur Kontenfindung (KTOSL)
- [HANA] Übersicht über die Query-Ausführungs-Engine