如何删除特殊的ASCII字符?

时间:2019-07-08 09:57:01

标签: sas

我正在尝试从字符串中删除特殊字符。

“孟买降雨实时更新:IMD预测未来24小时会有大雨。”

data demo1 (keep=headline2 headline3 headline4 headline5);
set kk.newspaper_append_freq_daily1;
headline2=trim(headline);
headline3=tranwrd(headline2,"�"," ");
headline5=compress(headline2,"�");
headline4=index(headline2,"�");
run;

2 个答案:

答案 0 :(得分:4)

您可以使用kpropdata功能。 来自文档:

  

删除或转换无法打印的字符。

代码示例:

%let in=kk.newspaper_append_freq_daily1;
%let out=demo1;

data &out; 
set ∈ 
array cc (*) _character_; 
do i=1 to dim(cc); 
 cc(_N_)=kpropdata(cc(i),"TRUNC", 'utf-8'); 
 end; 
run; 

在代码中,我使用了array语句来遍历表中的所有字符列。

答案 1 :(得分:0)

如果您保留字符白名单而不是尝试排除黑名单,例如

compress也应处理此问题。

clean_text = compress(dirty_text,'','kw');

k修饰符保留字符而不是删除它们,并且w将所有可打印字符添加到列表中。