*&---------------------------------------------------------------------*
*& Report YN_REGEX_DEMO_01
*&---------------------------------------------------------------------*
*& Author : NathanSun
*& Program Type : DEMO
*& Description : ABAP 正则表达式(第一部分)
*&---------------------------------------------------------------------*
REPORT YN_REGEX_DEMO_01.
DATA: MATCHER TYPE REF TO CL_ABAP_MATCHER,
MATCH TYPE C LENGTH 1.
*PATTERN参数代表字符模板,TEXT参数代表要匹配的字符,MATCH参数代表匹配结果,’X’表示匹配,SPACE表示不匹配。
MATCHER = CL_ABAP_MATCHER=>CREATE( PATTERN = '\w+@\w+(\.\w+)+'
TEXT = '[email protected]' ).
MATCH = MATCHER->MATCH( ).
*---------------------------------------------------------------------------------------------------
*---------------------------------------------------------------------------------------------------
DATA: MATCHER_A TYPE REF TO CL_ABAP_MATCHER,
MATCH_A TYPE C LENGTH 1.
*普通字符的匹配,要求字符模板与匹配字符严格一一对应,否则匹配失败
MATCHER_A = CL_ABAP_MATCHER=>CREATE( PATTERN = 'AB'
TEXT = 'AB' ).
MATCH_A = MATCHER_A->MATCH( ).
*---------------------------------------------------------------------------------------------------
*---------------------------------------------------------------------------------------------------
DATA: MATCHER_B TYPE REF TO CL_ABAP_MATCHER,
MATCH_B TYPE C LENGTH 1.
DATA: MATCHER_C TYPE REF TO CL_ABAP_MATCHER,
MATCH_C TYPE C LENGTH 1.
DATA: MATCHER_D TYPE REF TO CL_ABAP_MATCHER,
MATCH_D TYPE C LENGTH 1.
*转义字符:一些不便书写的字符,采用在前面加 "\" 的方法。例如
*\.匹配小数点(.)本身
MATCHER_B = CL_ABAP_MATCHER=>CREATE( PATTERN = '.\.'
TEXT = 'a.' ).
MATCH_B = MATCHER_B->MATCH( ).
*\\代表 "\" 本身
MATCHER_C = CL_ABAP_MATCHER=>CREATE( PATTERN = '\\w\\d'
TEXT = '\w\d' ).
MATCH_C = MATCHER_C->MATCH( ).
*\Q...\E中间的字符作为普通字符
MATCHER_D = CL_ABAP_MATCHER=>CREATE( PATTERN = '\Q\a\d\E'
TEXT = '\a\d' ).
MATCH_D = MATCHER_D->MATCH( ).
*---------------------------------------------------------------------------------------------------
*---------------------------------------------------------------------------------------------------
DATA: MATCHER_E TYPE REF TO CL_ABAP_MATCHER,
MATCH_E TYPE C LENGTH 1.
DATA: MATCHER_F TYPE REF TO CL_ABAP_MATCHER,
MATCH_F TYPE C LENGTH 1.
DATA: MATCHER_G TYPE REF TO CL_ABAP_MATCHER,
MATCH_G TYPE C LENGTH 1.
*通配字符
*\d代表任意一个数字,0~9 中的任意一个
MATCHER_E = CL_ABAP_MATCHER=>CREATE( PATTERN = '\d'
TEXT = '9' ).
MATCH_E = MATCHER_E->MATCH( ).
*\w代表任意一个字母或数字或下划线,也就是 A~Z,a~z,0~9,_ 中任意一个
MATCHER_F = CL_ABAP_MATCHER=>CREATE( PATTERN = '\w\w'
TEXT = 'A_' ).
MATCH_F = MATCHER_F->MATCH( ).
*.代表小数点可以匹配除了换行符(\n)以外的任意一个字符
MATCHER_G = CL_ABAP_MATCHER=>CREATE( PATTERN = '...'
TEXT = 'Ab3' ).
MATCH_G = MATCHER_G->MATCH( ).
WRITE:/ 'ABAP 正则表达式:' ,
/ MATCH ,
/ '普通字符:',
/ MATCH_A ,
/ '转义字符:',
/ MATCH_B ,
/ MATCH_C ,
/ MATCH_D ,
/ '通配字符:',
/ MATCH_E ,
/ MATCH_F ,
/ MATCH_G .
ABAP 正则表达式(第一部分)
猜你喜欢
转载自blog.csdn.net/Sundam/article/details/88636033
今日推荐
周排行