使用 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