- data have;
- input string $42.;
- cards;
- 42anyhan
- 42任何汉字
- 42any汉字
- 42 +_@#$汉字
- 42龼龽龾龿鿀鿁汉字
- أي كانجي
- テストします
- Путин
- ;
- run;
以下程序可检验字符型变量是否包含任意汉字(基本汉字,Unicode编码范围4E00-9FA5)。
- data want;
- set have;
- *Any character from [HAN];
- array _han_{0:20901}$4._temporary_;
- if _n_=1 then do i=0 to 20901;
- _han_[i]=unicode(cats('\u',put(i+4e00x,hex4.)));
- end;
- l=klength(string);
- do i=1 to l;
- if ksubstr(string,i,1) in _han_ then do;
- r=index(string,ksubstr(string,i,1));
- leave;
- end;
- if i=l then r=0;
- end;
- run;
结果截图如下:
变量r返回了首个汉字出现的位置,若字符串不包含任何汉字,则变量r的值为0。
注:结果变量r的值与SAS会话的编码有关,以上截图是在Unicode编码环境下取得的。



雷达卡




京公网安备 11010802022788号







