* 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.