Code: Alles auswählen.
DATA: A(10) TYPE C VALUE 'ABC',
B(10) TYPE C VALUE 'BD',
C(10) TYPE C.
DATA: LENGHT TYPE I.
LENGHT = strlen( A ).
DO LENGHT TIMES.
FIND FIRST OCCURRENCE OF A(1) in B.
IF SY-SUBRC = 0.
CONCATENATE C A(1) INTO C.
endif.
SHIFT A.
enddo.
Code: Alles auswählen.
c = a.
CONCATENATE '[^' b ']' INTO lv_regex. " Hmm - das sollen eckige Klammern sein - die bei 8 und 9 stehen
REPLACE ALL OCCURRENCES OF REGEX lv_regex IN c WITH ``.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
ralf.wenzel
Beide Bedingungen sind gegebenblack_adept hat geschrieben:solange in A jedes Zeichen nur 1x vorkommt (...) und in B nur "normale" Zeichen (...) vorkommen geht das.
Code: Alles auswählen.
CONCATENATE a b INTO c SEPARATED BY '~'. " C lang genug dafür wählen. Ich nehme einen String
REPLACE ALL OCCURRENCES OF REGEX '(.)(?!.*~.*\1)' IN c WITH ``. " Alles was nicht in B ist entfernen
REPLACE ALL OCCURRENCES OF REGEX '(.)(?=.*\1+)' IN c WITH ``. " Duplikate in Ergebnis entfernen
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
ralf.wenzel