DATA Step, Macro, Functions and more

Get the first two words in a string

Reply
Frequent Contributor
Posts: 77

Get the first two words in a string

Suppose this string is:

s ="Amy,Jeff,Paul,Mary"

I can get the first two words using Scan function twice:

w2 = scan(s,1,',')||scan(s,2,',');

Is there any single function call which can accomplish this?
Regular Contributor
Posts: 241

Re: Get the first two words in a string

Of course. Here is one, assuming a "word" means something delimited by a comma and possibly the beginning and ending boundaries of a character value.



   data _null_;


     s = "Amy,Jeff,Paul,Mary";


     w2 = prxchange("s|^(.+?),(.+?),.*|$1+$2|",1,s);


     put s= w2=;


   run;


   /* on log


   s=Amy,Jeff,Paul,Mary w2=Amy+Jeff


   */

Frequent Contributor
Posts: 77

Re: Get the first two words in a string

Thanks, expert!
Ask a Question
Discussion stats
  • 2 replies
  • 195 views
  • 0 likes
  • 2 in conversation