[ABAP] RegEx – Hausnummern und Straßennamen aus String filtern

* https://regex101.com/

* Straße des 17. Juni 100/a
* Hauptstrasse 22-1
* Kleiner Weg 3
* Berliner Strasse 22 - 24 A
* Hermann-Weise-Weg 11b

DATA: lv_in TYPE string VALUE 'Straße des 17. Juni 100/a'.

* suchen nach Hausnummern in String
DATA(matcher) = cl_abap_matcher=>create( pattern = '\s[0-9]{1,}[\/ \-0-9a-zA-Z]*'
                                         text = lv_in
                                         ignore_case = abap_true ).

* Tabelle mit Suchergebnissen
DATA(it_matches) = matcher->find_all( ).

IF NOT it_matches IS INITIAL.
* der letzte Eintrag sollte die Hausnummer sein
  DATA(lv_last_entry) = it_matches[ lines( it_matches ) ].

* Straße
  WRITE: / substring( val = lv_in
                      off = 0
                      len = lv_last_entry-offset ).

* Hausnummer
  WRITE: / substring( val = lv_in
                      off = lv_last_entry-offset + 1
                      len = lv_last_entry-length - 1 ).
ENDIF.