我没有使用像INDEXW(),FIND()等SAS函数,而是想使用Perl:PRXPARSE和其他人来完成这项工作。
我设法将数千个SAS pgms放在一起以便于搜索。一些pgms具有如下的PROC DATASETS语句:
PROC DATASETS LIB =工作杀人;或
PROC DATASETS LIB = DXT NODETAILS; CONTENTS OUT = WORK.DXT(KEEP = MEMNAME NAME WHERE =(...)DATA = ALL NOPRINT; QUIT;
我不希望其中包含“KILL”的陈述。所以我设置了PRXPARSE语句,如下所示但不起作用:它给了我一切,“KILL”或没有它。
data sw;
retain tgt;
set st end=e;
if _n_ = 1 then do;
retain tgt;
pid="/proc datasets ?[^(kill)]/i";
tgt=prxparse(pid);
end;
call prxsubstr(tgt, contents, position, length);
if position>0;
keep contents mark;
run;
proc print data=sw(obs=999);
run;
希望我让自己明白了。 提前谢谢。