当我在字符串中搜索单词时,我通常会这样做:
CONSTANTS:
lc_word TYPE string VALUE 'TEST',
.
IF ls_structure-name CS lc_word.
"count( ).
ENDIF.
但这一次,我只希望这个词是孤立的、区分大小写的
例如:
TESTer
、Test
不应计数TEST
、lol TEST
、TEST yourself
、hi TEST yourself
应计数
有人知道怎么做吗?
您可以使用正则表达式检查:
FIND REGEX '(s|^)TEST(s|$)' IN ls_structure-name.
IF sy-subrc EQ 0.
"count( ).
ENDIF.
它检查以下模式:
- 空白或字符串的开头
- "测试">
- 空白或字符串末尾
您可以将句子拆分成表格,然后检查它是否存在于tale中。像这样:
DATA: lv_string TYPE string VALUE 'One two TEST three',
lv_var TYPE string VALUE 'TEST',
lv_count TYPE i.
SPLIT lv_string AT space INTO TABLE DATA(lt_string).
IF line_exists( lt_string[ table_line = lv_var ] ).
lv_count = lv_count + 1.
ENDIF.
WRITE: / lv_count.