ABAP 提取或去除字符串中的中文字符(双字节字符)

利用正则表达式,简单代码如下:

DATA: lv_str0 TYPE string,
      lv_str1 TYPE string,
      lv_str2 TYPE string.

lv_str0 = lv_str1 = lv_str2 = 'AB、¥C中国ABC_美国132'.

" 只保留双字节字符
REPLACE ALL OCCURRENCES OF REGEX '[u4e00-u9fa5]' IN lv_str1 WITH space.

" 只保留单字节字符
REPLACE ALL OCCURRENCES OF REGEX '[^x00-xff]' IN lv_str2 WITH space.

WRITE: '原始字符串: ',   lv_str0,
       / '双字字字符: ', lv_str1,
       / '单字节字符: ', lv_str2.


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAP语言,你可以使用循环来逐个访问字符串的每个字符。以下是一些常用的方法来循环字符串: 1. 使用循环语句和字符串函数: ``` DATA: lv_string TYPE string VALUE 'Hello World'. DATA: lv_length TYPE i, lv_index TYPE i. lv_length = STRLEN( lv_string ). DO lv_length TIMES. lv_index = sy-index. WRITE lv_string+lv_index(1). ENDDO. ``` 在这个例子,我们使用了DO循环来迭代字符串的长度次数。在每次循环,我们使用WRITE语句和字符串截取操作符(+)来访问字符串的每个字符。 2. 使用字符串表: ``` DATA: lt_chars TYPE TABLE OF c. SPLIT 'Hello World' AT space INTO TABLE lt_chars. LOOP AT lt_chars INTO DATA(lv_char). WRITE lv_char. ENDLOOP. ``` 在这个例子,我们使用SPLIT函数将字符串拆分为一个字符表。然后,使用LOOP AT循环逐个访问字符的每个字符。 3. 使用正则表达式: ``` DATA: lv_string TYPE string VALUE 'Hello World'. DATA: lv_match TYPE string. FIND REGEX '([a-zA-Z])' IN lv_string IGNORING CASE MATCH OFFSET DATA(lv_offset). WHILE sy-subrc = 0. lv_match = lv_string+lv_offset(1). WRITE lv_match. FIND REGEX '([a-zA-Z])' IN lv_string IGNORING CASE MATCH OFFSET DATA(lv_offset). ENDWHILE. ``` 在这个例子,我们使用FIND REGEX语句和正则表达式来搜索字符串的字母字符。使用WHILE循环来迭代找到的每个匹配项,并使用WRITE语句将其输出。 这些是在ABAP语言循环字符串的一些常用方法。根据具体的需求,你可能需要选择适合你的情况的方法来循环字符串

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值