sap 提取字符串中汉字
sap 提取字符串中汉字http://blog.chinaunix.net/uid-15016030-id-22250.html
DATA: alpha_num(120) TYPE c.
alpha_num = ' abcdefghijklopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,./;''[]\-=`<>?:"{}|_+~!@#$%^&*()'.
IF input CA alpha_num.
output = '不仅仅全是汉字'.
ELSE.
output = '全是汉字'.
ENDIF.
IF NOT input CO alpha_num.
output = '含有汉字'.
ELSE.
output = '不含有任何汉字'.
ENDIF.
提取汉字
data len type i.
data n type i.
len = strlen( input ).
do len times.
n = sy-index - 1.
if not alpha_num cs input+n(1).
concatenate output input+n(1) into output.
endif.
enddo.
Verysky补充:
原博文:alpha_num = ' abcdefghijklopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,./;''[]\-=`<>?:"{}|_+~!@#$%^&*()'.
调整:alpha_num = 'abcdefghijklopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,./;''[]\-=`<>?:"{}|_+·~!@#$%^&*()'.
新调整的去除了开头的空格、加上了字符“·”(tab键上面那个);判断时先对INPUT进行压缩处理;
例子:
DATA: ALPHA_NUM(120) TYPE C.
DATA: GT_MARA TYPE TABLE OF MARA WITH HEADER LINE.
TABLES: MAKT.
ALPHA_NUM = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789,./;''[]\-=`<>?:"{}|_+·~!@#$%^&*()'.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE GT_MARA
FROM MARA
WHERE PSTAT EQ 'K'.
IF SY-SUBRC EQ 0.
LOOP AT GT_MARA.
SELECT SINGLE *
INTO MAKT
FROM MAKT
WHERE MATNR EQ GT_MARA-MATNR
AND SPRAS EQ '1'.
CONDENSE MAKT-MAKTX.
IF MAKT-MAKTX CO ALPHA_NUM.
CLEAR: G_MESSAGE.
CONCATENATE GT_MARA-MATNR '----物料描述没有汉字:' MAKT-MAKTX INTO G_MESSAGE.
WRITE: / G_MESSAGE.
ENDIF.
ENDLOOP.
LOOP AT GT_MARA.
SELECT SINGLE *
INTO MAKT
FROM MAKT
WHERE MATNR EQ GT_MARA-MATNR
AND SPRAS EQ '1'.
CONDENSE MAKT-MAKTX.
IF MAKT-MAKTX CN ALPHA_NUM.
CLEAR: G_MESSAGE.
CONCATENATE GT_MARA-MATNR '----物料描述有汉字:' MAKT-MAKTX INTO G_MESSAGE.
WRITE: / G_MESSAGE.
ENDIF.
ENDLOOP.
ENDIF.
页:
[1]