ziyenano 发表于 2012-12-24 14:25 
%let string=aa bb cc dd ee ff;
%let id=%sysfunc(prxparse(s/[^bb|dd]/$1/));
%let test=%sysfunc(prxc ...
多谢,但是你这个还是不太对
[^bb|dd]好像是针对字符的,而不是单词
因此如果修改string如下,则不能正常运行
%let string=ab bc cd ef;
%let id=%sysfunc(prxparse(s/[^bc|ef]/$1/));
%let test=%sysfunc(prxchange(&id,-1,&string));
%put &test;
另外还想要解决空格的问题,需要最终结果保留单词间的空格
谢谢各位大牛想办法
我这么做的原因是通过宏变量作为宏参数,且有固定的几个选项,每次输入可以选择其中一个或多个,输入对则保留,输错则无视。可行的办法应该还有很多,但我觉得用正则是比较有效率的办法