連続した文字列だけを削除する方法

[OS]ALL
[リリース]
[キーワード] COMPRESS

[質問]

文字列を削除するとき、"SAS"のように連続した文字列だけを削除するにはどうしたらいいでしょうか? 以下のようにCOMPRESS関数を使用すると、"S"および"A"すべてを削除してしまいます。

   a=compress(text,'SAS') ;

[回答]

以下のようにTRANWRD関数を使用し、SASという文字列をいったん他の文字に変換してから削除します。

data a ;
  input name $1-20 ;
  text=compress(tranwrd(name,'SAS','*'),'*');
  cards;
ASASAASASSSBB
;

proc print;
run;