字符串提取《汉字》与《非汉字》


PARAMETERS: P_STR TYPE CHAR20.

START-OF-SELECTION.

  DATA: LV_ZH TYPE I.
  DATA: LV_EN TYPE I.
  PERFORM FRM_TRAN_GET_CHINESE USING P_STR CHANGING LV_ZH LV_EN.
  WRITE: '汉字:' ,LV_ZH,/ '其它:',LV_EN.

*&---------------------------------------------------------------------*
*&      Form  frm_tran_get_chinese
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM FRM_TRAN_GET_CHINESE USING PV_STR CHANGING CV_ZH CV_EN.
  DATA: LT_RESULT_TAB TYPE MATCH_RESULT_TAB.
  DATA: LV_STRM1 TYPE STRING VALUE '[^\\u4E00-\\u9FA5\\uF900-\\uFA2D]'. " 汉字
  DATA: LV_STRM2 TYPE STRING VALUE '[\\u4E00-\\u9FA5\\uF900-\\uFA2D]'.  " 非汉字

  DATA: LV_STR TYPE STRING.

  LV_STR = PV_STR.

  ""提取汉字
  FIND ALL OCCURRENCES OF REGEX LV_STRM1 IN LV_STR
           RESULTS LT_RESULT_TAB.
  DESCRIBE TABLE LT_RESULT_TAB[] LINES CV_ZH.
  ""非汉字
  FIND ALL OCCURRENCES OF REGEX LV_STRM2  IN LV_STR
           RESULTS LT_RESULT_TAB.
  DESCRIBE TABLE LT_RESULT_TAB[] LINES CV_EN.

ENDFORM.                    "frm_tran_get_chinese
文字123中AB一二三四A 
总长11    
汉字  非汉字 
031001
061011
071021
081041
091051
   0101
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值