使用 OO-Regular 表达式获取子匹配

通过使用类 CL_ABAP_MATCHER 的方法 GET_SUBMATCH,我们可以获得组/子组中的数据。

目标:获取关键字类型右侧的令牌。

DATA: lv_pattern TYPE string VALUE 'type\s+(\w+)',
      lv_test TYPE string VALUE 'data lwa type mara'.

CREATE OBJECT ref_regex
  EXPORTING
        pattern     = lv_pattern
        ignore_case = c_true.

ref_regex->create_matcher(
    EXPORTING
        text    = lv_test
    RECEIVING
        matcher = ref_matcher
       ).

ref_matcher->get_submatch(
            EXPORTING
                 index = 0
            RECEIVING
                 submatch = lv_smatch.

结果变量 lv_smatch 包含值 MARA