特殊关键字

特殊语法

CONCATENATE

CONCATENATE 'a' 'b' 'c' INTO DATA(str). 
ASSERT str = 'a' && 'b' && 'c'. 
ASSERT str = |{ 'a' }{ 'b' }{ 'c' }|.“嵌入表达式 	

"字段叠加
CONCATENATE t1 t2 t3 t4 t5 t6 t7 t8 
        INTO DATA(result).

“表数据字段叠加 并且用空格分隔
CONCATENATE LINES OF itab INTO DATA(result) SEPARATED BY space.

” 中间用 tab大空格间隔
CONCATENATE LINES OF itab INTO result RESPECTING BLANKS.

FIND

“匹配相同的字符 导入内表

result_tab TYPE match_result_tab. 
FIELD-SYMBOLS <match> LIKE LINE OF result_tab. 
FIND ALL OCCURRENCES OF patt IN 
 `Everybody knows this is nowhere` 
 RESULTS result_tab.

"找到匹配的位置 和 长度

FIND patt IN SECTION OFFSET off OF 
   `Everybody knows this is nowhere` 
   MATCH OFFSET moff 
   MATCH LENGTH mlen. 

”正则表达式

FIND REGEX 'a.|[ab]+|b.*' IN 'oooababboo' 
 MATCH OFFSET moff 
 MATCH LENGTH mlen. 

FIND REGEX '\d+' IN 'abc123def' 
 MATCH OFFSET DATA(moff) 
 MATCH LENGTH DATA(mlen). ”\d + 
cl_demo_output=>display( substring( val = 'abc123def' 
                                off = moff 
                                len = mlen ) ). 

区分大小写

FIND 'A' in `aA` IGNORING   CASE MATCH OFFSET DATA             (moff1).
FIND 'A' in `aA` RESPECTING CASE MATCH OFFSET DATA(moff2).

找到匹配的数据导入内表

DATA: result_tab TYPE match_result_tab. 
FIND ALL OCCURRENCES OF REGEX `((ab)|(ba))` 
     IN 'abba' 
     RESULTS result_tab. 

replace

正则表达式

DATA(str) = `abcde`. “结果是 $bcd$
REPLACE REGEX `a(bcd)e` IN str WITH `\$$1\$`. 
cl_demo_output=>display( str ). 

DATA text TYPE string VALUE '-uu-'."结果是x-xx-x
REPLACE ALL OCCURRENCES OF REGEX 'u*' IN text WITH 'x'.
" \u 小写  \U 大写
REPLACE ALL OCCURRENCES OF REGEX `\u` IN str WITH '`' 
    RESPECTING CASE. 

REPLACEMENT

REPLACE ALL OCCURRENCES OF 'know' IN 
    text1 WITH 'should know that' 
          REPLACEMENT COUNT  DATA(cnt) ” 次数
          REPLACEMENT OFFSET DATA(off) “ 起起
          REPLACEMENT LENGTH DATA(len).” 长度 

shift

SHIFT text UP TO 'you'.“依据单词分割
SHIFT  text   BY off  PLACES."依据位置分割
SHIFT txt RIGHT DELETING TRAILING ` `.”去空格 

split

分割数据

”取所有的数字 去空格
DATA(text) = `aaa123bbb456ccc789`. 
cl_demo_input=>request( CHANGING field =  text ). 
SPLIT condense( replace( val   = text 
                         regex = `\D` 
                         with  = ` ` 
                         occ = 0 ) ) AT ` ` INTO TABLE DATA(itab). 
cl_demo_output=>display( itab ). 

condense

“ 结果是 Rock'n'Roll
DATA(result) = condense( val  = `  Rock'xxx'Roller` 
                     del = `re ` 
                     from = `x` to = `n`  ). 
condense no-gap 去空格

OVERLAY

将文本字段分配给时间字段后,它包含无效时间“12__00”(根据转换规则)。 由于覆盖了initial_time常量,两个空格被替换为“00”,结果是有效时间“120000”。
CONSTANTS initial_time TYPE t VALUE IS INITIAL.
DATA: time TYPE t,
text TYPE c LENGTH 4.

text = '12'. 
time = text. 
OVERLAY time WITH initial_time.

translate

TRANSLATE text TO UPPER CASE.
to_upper(). 一样的功能

write

DATA: date_long  TYPE c LENGTH 10,
      date_short TYPE c LENGTH 8,
      date_mask  TYPE c LENGTH 8.

WRITE sy-datlo TO: date_short,
                   date_long,
                   date_mask DD/MM/YY."格式转换
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值