下列这段代码的作用是,使用 ABAP 正则表达式,将 uuid = 后面的具体值解析出来:
REPORT z.
data: lv type string value 'uuid=dd&sid=0.7795630486081988'.
DATA: moff TYPE i,
mlen TYPE i.
FIND REGEX '^uuid=(.*)&.*$' IN lv
MATCH OFFSET moff
MATCH LENGTH mlen.
WRITE: / sy-subrc.
WRITE:/ moff, mlen.
WRITE:/ lv+moff(mlen).
DATA(reg_pattern) = '^uuid=(.*)&.*$'.
DATA(lo_regex) = NEW cl_abap_regex( pattern = reg_pattern ).
DATA(lo_matcher) = lo_regex->create_matcher( EXPORTING text = lv ).
CHECK lo_matcher->match( ) = abap_true.
DATA(lt_reg_match_result) = lo_matcher->find_all( ).
READ TABLE lt_reg_match_result ASSIGNING FIELD-SYMBOL(<reg_entry>) INDEX 1.
data(match) = lt_reg_match_result[ 1 ].
data(submatch) = match-submatches[ 1 ].
WRITE:/ 'uuid:', lv+submatch-offset(submatch-length).