Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式的SAS代码_Regex_Sas - Fatal编程技术网

Regex 正则表达式的SAS代码

Regex 正则表达式的SAS代码,regex,sas,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)

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

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;

您不能在该上下文中使用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;

您不能在该上下文中使用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;

我还要指出,这可能是一个非常糟糕的想法。这会将所有“DR”更改为“DRIVE”,即使它是“Driscoll CT”->“DRIVEiscoll,CT”的一部分。如果你想确认你正在改变一个“DR”或类似的东西,你需要包括边界检查。我还要指出,这可能是一个非常糟糕的想法。这会将所有“DR”更改为“DRIVE”,即使它是“Driscoll CT”->“DRIVEiscoll,CT”的一部分。如果要验证是否正在更改“DR”或类似内容,则需要包括边界检查。