特殊语法
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."格式转换
网友评论