二维码

[基础语法] SAP ABAP字符串操作之通配符和转移符

Twilight发表于 2015-05-27 14:42Twilight 最后回复于 2015-05-27 14:42 [复制链接] 4615 0

  • 通配符:*和+
  • 转义符:#
  • OPEN SQL中:通配符:%和_        其中“%”用于替代任意字符串,“_”用于替代单个字符串。

转义符可以使用ESCAPE关键字来定义,如:
SELECT SINGLE * FROM makt WHERE spras = 1 and maktx LIKE '%/_' ESCAPE '/' .  查询包含“_”的物料描述的单条记录

如在字符串比较关键字 CP 和 NP 中,可以使用通配符进行匹配,但是如果要匹配通配符本身、转义符本身以及大小写和空格等特殊字符时,可用#实现:
举例:'ABC' CP '*#b*'
结果:本例返回值为假,因为 #b 限定了匹配小写的字符b。

同样:
#* 将通配符 * 转回原意;
#+ 也将通配符 + 转回原意;
## 将转移字符本身转回原意;
#   用于匹配结尾空格,空格数自定。

测试程序:
  1. PARAMETERS: P_INPUT(10) TYPE C LOWER CASE.
  2. IF P_INPUT CP '#S#A#P123'.
  3. WRITE:/ 'YES'.
  4. ELSE.
  5. WRITE:/ 'NO'.
  6. ENDIF.
复制代码
或者
  1. PARAMETERS: p_input(10) TYPE c LOWER CASE.
  2. DATA: r_compare TYPE RANGE OF text10 WITH HEADER LINE.
  3. r_compare-sign = 'I'.
  4. r_compare-option = 'CP'.
  5. r_compare-low = '#S#A#P123'.
  6. APPEND r_compare.
  7. IF p_input IN r_compare.
  8.   WRITE:/ 'YES'.
  9. ELSE.
  10.   WRITE:/ 'NO'.
  11. ENDIF.
复制代码
回复

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表