全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2497 6
2017-04-23
悬赏 5 个论坛币 已解决
最近初涉猎文本挖掘,请教下各位,在SAS EG正则表达式中如何定位中文?
PS:SAS所用编码格式为utf-8。

最佳答案

l1i2n3i4n5g 查看完整内容

data test; some_data='zhangsan张三123456789,lisi李四?wangwu王五123456'; run; data test1; set test; length together found $100.; retain together; stop = length(some_data); if _n_=1 then do; pattern="/[[:^ascii:]]+/"; pattern_ID=prxparse(pattern); start = 1; together=''; end; call prxnext(pattern_ID, start, stop, some_data, position, length); do while (position > 0); ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-4-23 17:44:24
当年孟皓 发表于 2017-4-24 09:15
我试过用'/[\u4e00-\u9fa5/]'或者'/[0X4E00-0X9FA5]/',还是没用
data test;
some_data='zhangsan张三123456789,lisi李四?wangwu王五123456';
run;

data test1;
set test;
        length together found $100.;
        retain together;
        stop = length(some_data);
if _n_=1 then do;
        pattern="/[[:^ascii:]]+/";

        pattern_ID=prxparse(pattern);
        start = 1;
        together='';
end;
call prxnext(pattern_ID, start, stop, some_data, position, length);
        do while (position > 0);
        found = substr(some_data, position, length);
        together=catx('',together,found);
        CALL PRXNEXT(pattern_ID, start, stop, some_data, position, length);
        end;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-4-23 20:32:56
还真是个问题!
英文能处理
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-4-23 20:54:48
“UTF-8编码是一种针对Unicode的可变长度字符编码,又称万国码。UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织”
可考虑根据汉字编码范围来定位
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-4-24 00:56:11
楼主你应该试试这两个系统选项:
options validvarname = ANY;
options validmemname = EXTEND;

设好后用proc options option=validvarname; proc options option=validmemname;
run;
来确认,然后看看SAS是不是已经接受中文了。

options validvarname = ANY;
*options validmemname = EXTEND;
data test;
"中文"n=10;
run;
proc contents;
proc print data =test;
run;


结果如下:

Obs    中文
   1      10


注:option validmemname是SAS9.4后有的选项。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-4-24 08:55:38
foocares 发表于 2017-4-24 00:56
楼主你应该试试这两个系统选项:
options validvarname = ANY;
options validmemname = EXTEND;
谢谢您的解答,我的需求是:
比如一个地址字段里面包含中文项,我要把含有这些中文项的地址找出来,要用到正则表达式,但是我不知道找中文的语法怎么写。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群