SAS代码用于正则表达式

时间:2012-11-06 19:30:46

标签: regex sas

我有一个空格分隔的地址字符串,我试图用第三个参数替换第二个参数。我在下面发布的代码不起作用。请帮我纠正。

data sasuser.word_exchange;
set sasuser.testnew3;
retain re1 re2 ;
if _N_ = 1 then do;
re1 = prxparse('s/DR/DRIVE/');
re2= prxparse('s/AVE/AVENUE/');
end;
call prxchange( re1,-1, strip(CITYSTATE));
call prxchange( re2,-1, strip(CITYSTATE));
RUN;

1 个答案:

答案 0 :(得分:1)

您不能在该上下文中使用STRIP。这是一个使用/ io的例子(i =不区分大小写,o =编译一次,因此不需要if n = 1块)。根据您的数据,“我”可能不受欢迎。

data have;
input @1 CITYSTATE $200.;
infile datalines truncover;
datalines;
2001 Bellini Ave Michigan City IN 58431
123 Anywhere Dr Boston MA 00123
456 Nowhere Lane New York City NY 10035
;;;;
run;

data want;
set have;
re1 = prxparse('s/DR/DRIVE/io');
re2= prxparse('s/AVE/AVENUE/io');
call prxchange( re1,-1, CITYSTATE);
call prxchange( re2,-1, CITYSTATE);
put CITYSTATE=;
RUN;