DATA ex(keep=string newstring);
SET sxlion;
ARRAY X[24] $1.;
DO J = 1 TO 24;
if ANYALNUM(string,j) eq j then x[j]=SUBSTR(STRING,J,1);
else X[J]=0;
END;
DROP J;
newstring=catt(of x1-x24);
RUN;作者: shiyiming 时间: 2008-12-15 12:36 标题: Re: 练习S1:把字符中的非数字非字母的符号都变为星号或者0或者其他符号 哦,下画线也不要.那就用下面的
[code:1nws6h5q]
data result;
set sxlion;
newstring=prxchange('s/[\W|_]/0/',-1,string);
run;[/code:1nws6h5q]作者: shiyiming 时间: 2008-12-15 12:48 标题: Re: 练习S1:把字符中的非数字非字母的符号都变为星号或者0或者其他符号 我看到正则表达式就头痛,看来这辈子都学不会了。byes大师真是N人啊!作者: Qiong 时间: 2008-12-15 13:55 标题: Re: 练习S1:把字符中的非数字非字母的符号都变为星号或者0或者其他符号 DATA SXLION;
newstring='12345a+*-52@.e$d*dd1.12d8 642ji23kl2w~`2k2-2o4=3';
oldstring='12345a+*-52@.e$d*dd1.12d8 642ji23kl2w~`2k2-2o4=3';
do i=1 to length(newSTRING);
a=substr(newSTRING,i,1);
if not ( 'A'<=a<='Z' or 'a'<=a<='z' or '0'<=a<='9' ) then substr(newSTRING,i,1)='*';
end;
drop i a;
run;
我的山寨版~~希望好理解一点~~作者: shiyiming 时间: 2008-12-17 02:32 标题: Re: 练习S1:把字符中的非数字非字母的符号都变为星号或者0或者其他符号 同志们信byes啦,不要白费力气,有些条件单靠字符串函数根本就很难表达。那靓仔超级版主说头疼是逗咱们开心呢 <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->作者: shiyiming 时间: 2008-12-17 10:05 标题: Re: 练习S1:把字符中的非数字非字母的符号都变为星号或者0或者其他符号 只是练了下字符串函数,如 ANYALNUM(string <,start>) Searches a character string for an alphanumeric character and returns the first position at which it is found
还是修炼 perl正则表达式是王道!!!作者: shiyiming 时间: 2008-12-17 13:10 标题: Re: 练习S1:把字符中的非数字非字母的符号都变为星号或者0或者其他符号 byes的确称得上大师级的了,呵呵