Code: Alles auswählen.
FIND SUBSTRING 'Auftrag:' IN l_str
IGNORING CASE
MATCH OFFSET l_off
MATCH LENGTH l_len.
Code: Alles auswählen.
DATA
: l_str TYPE string
, lt_result TYPE match_result_tab
, ls_result TYPE match_result
.
l_str = 'Dies ist Auftrag: 4711 und hier kommt Blödsinn'.
FIND REGEX 'Auftrag: ([0-9]+) '
IN l_str
IGNORING CASE
RESULTS lt_result.
Code: Alles auswählen.
data: teststring type string.
data: pos type i,
clen type i,
t_auftrno type standard table of string with header line.
teststring = 'blabla: gugug:AuftraG: 9384781390: und noch ein Auftrag: 09382783728'.
translate teststring to Upper Case.
condense teststring no-gaps.
while teststring cp '*AUFTRAG:*'.
clen = strlen( teststring ).
if clen ne sy-fdpos.
pos = sy-fdpos + 8.
t_auftrno = teststring+pos(10).
append t_auftrno.
pos = pos + 10.
teststring = teststring+pos.
endif.
endwhile.
Code: Alles auswählen.
DATA
: l_str TYPE string
, lt_result TYPE match_result_tab
, ls_result TYPE match_result
, ls_subres TYPE submatch_result
.
l_str = 'Dies ist Auftrag: 4711 und hier kommt Blödsinn und noch ein Auftrag 8012132654216578454 und wieder Blödsinn:1elf!1'.
FIND ALL OCCURRENCES OF REGEX 'Auftrag(:*) ([0-9]+) '
IN l_str
IGNORING CASE
RESULTS lt_result.
WRITE: / l_str.
SKIP.
LOOP AT lt_result INTO ls_result.
WRITE: / ls_result-offset, ls_result-length.
LOOP AT ls_result-submatches INTO ls_subres.
WRITE: /7 ls_subres-offset, ls_subres-length.
IF sy-tabix = 2.
WRITE: l_str+ls_subres-offset(ls_subres-length).
ENDIF.
ENDLOOP.
ENDLOOP.
Code: Alles auswählen.
FIND ALL OCCURRENCES OF REGEX '\bAuftrag([:\s]+)([0-9]+)'
IN l_str
IGNORING CASE
RESULTS lt_result.
Code: Alles auswählen.
'Auftrag(:*) \**([0-9]+)\** '