ABAP 正则表达式(第一部分)

*&---------------------------------------------------------------------*
*& Report YN_REGEX_DEMO_01
*&---------------------------------------------------------------------*
*& Author              :  NathanSun
*& Program Type        :  DEMO
*& Description         :  ABAP 正则表达式(第一部分)
*&---------------------------------------------------------------------*
REPORT YN_REGEX_DEMO_01.

DATAMATCHER TYPE REF TO CL_ABAP_MATCHER,
      MATCH   TYPE C LENGTH 1.
*PATTERN参数代表字符模板,TEXT参数代表要匹配的字符,MATCH参数代表匹配结果,’X’表示匹配,SPACE表示不匹配。
MATCHER CL_ABAP_MATCHER=>CREATEPATTERN     '\w+@\w+(\.\w+)+'
                                   TEXT        '[email protected]).
MATCH MATCHER->MATCH( ).

*---------------------------------------------------------------------------------------------------
*---------------------------------------------------------------------------------------------------
DATAMATCHER_A TYPE REF TO CL_ABAP_MATCHER,
      MATCH_A   TYPE C LENGTH 1.
*普通字符的匹配,要求字符模板与匹配字符严格一一对应,否则匹配失败
MATCHER_A CL_ABAP_MATCHER=>CREATEPATTERN     'AB'
                                   TEXT        'AB' ).
MATCH_A MATCHER_A->MATCH( ).

*---------------------------------------------------------------------------------------------------
*---------------------------------------------------------------------------------------------------
DATAMATCHER_B TYPE REF TO CL_ABAP_MATCHER,
      MATCH_B   TYPE C LENGTH 1.
DATAMATCHER_C TYPE REF TO CL_ABAP_MATCHER,
      MATCH_C   TYPE C LENGTH 1.
DATAMATCHER_D TYPE REF TO CL_ABAP_MATCHER,
      MATCH_D   TYPE C LENGTH 1.
*转义字符:一些不便书写的字符,采用在前面加 "\" 的方法。例如

*\.匹配小数点(.)本身
MATCHER_B CL_ABAP_MATCHER=>CREATEPATTERN     '.\.'
                                   TEXT        'a.' ).
MATCH_B MATCHER_B->MATCH( ).

*\\代表 "\" 本身
MATCHER_C CL_ABAP_MATCHER=>CREATEPATTERN     '\\w\\d'
                                   TEXT        '\w\d' ).
MATCH_C MATCHER_C->MATCH( ).

*\Q...\E中间的字符作为普通字符
MATCHER_D CL_ABAP_MATCHER=>CREATEPATTERN     '\Q\a\d\E'
                                   TEXT        '\a\d' ).
MATCH_D MATCHER_D->MATCH( ).

*---------------------------------------------------------------------------------------------------
*---------------------------------------------------------------------------------------------------
DATAMATCHER_E TYPE REF TO CL_ABAP_MATCHER,
      MATCH_E   TYPE C LENGTH 1.
DATAMATCHER_F TYPE REF TO CL_ABAP_MATCHER,
      MATCH_F   TYPE C LENGTH 1.
DATAMATCHER_G TYPE REF TO CL_ABAP_MATCHER,
      MATCH_G   TYPE C LENGTH 1.
*通配字符

*\d代表任意一个数字,0~9 中的任意一个
MATCHER_E CL_ABAP_MATCHER=>CREATEPATTERN     '\d'
                                   TEXT        '9' ).
MATCH_E MATCHER_E->MATCH( ).

*\w代表任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
MATCHER_F CL_ABAP_MATCHER=>CREATEPATTERN     '\w\w'
                                   TEXT        'A_' ).
MATCH_F MATCHER_F->MATCH( ).

*.代表小数点可以匹配除了换行符(\n)以外的任意一个字符
MATCHER_G CL_ABAP_MATCHER=>CREATEPATTERN     '...'
                                   TEXT        'Ab3' ).
MATCH_G MATCHER_G->MATCH( ).

WRITE:'ABAP 正则表达式:' ,
      / MATCH ,
      / '普通字符:',
      / MATCH_A ,
      / '转义字符:',
      / MATCH_B ,
      / MATCH_C ,
      / MATCH_D ,
      / '通配字符:',
      / MATCH_E ,
      / MATCH_F ,
      / MATCH_G .

猜你喜欢

转载自blog.csdn.net/Sundam/article/details/88636033
今日推荐