COMPRESS

Reply
Contributor
Posts: 70

COMPRESS

name=j** ney

in the above data value there is a two * are there after J.Using compress we can remove this *.But i need to remove only 1 *.How can i write the code.

Occasional Contributor Hoz
Occasional Contributor
Posts: 17

COMPRESS

How about use "prxchange".

name="j** ney";

txt = prxchange('s/\*\*/*/',-1,name);

put txt=;

Best Regards,

Regular Contributor
Posts: 151

COMPRESS

I agree with Hoz, prxchange is the way to do this.  A slight modification to Hoz's code will replace any number of consecutive * to a single *.

txt = prxchange('s/\*+/*/',-1,name);

Respected Advisor
Posts: 3,908

COMPRESS

Using a regular expression with prxchange() is for sure a very powerful way of modifying a string.

Considering that it's such a simple text pattern and the question is asked in the "Getting started" forum using a function like TRANSTRN() is also acceptable.

data _null_;

  myVariable='name=j** ney';

  myVariable=TRANSTRN(myVariable,'**','*');

  put myVariable=;

run;

Ask a Question
Discussion stats
  • 3 replies
  • 209 views
  • 0 likes
  • 4 in conversation