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

该博客主要介绍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        '197498xxxx@qq.com' ).
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 .

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值