data have;
input var $30.;
cards;
THE CLIFTON_ABCD
THE FOODIE BA_ABCD
THE HOME UBON_ABCD
MAKRONO_ABCD
;
data want;
set have;
length want $50;
if countw(var,' ')>1 then want=substr(var,1,prxmatch('/\b[a-z]+_ABCD\b/i', var)-1);
else want=var;
run;
data have;
input var $30.;
cards;
THE CLIFTON_ABCD
THE FOODIE BA_ABCD
THE HOME UBON_ABCD
MAKRONO_ABCD
;
data want;
set have;
length want $50;
if countw(var,' ')>1 then want=substr(var,1,prxmatch('/\b[a-z]+_ABCD\b/i', var)-1);
else want=var;
run;
Another approach, also using a pearl regular expression:
data have;
input name $50.;
cards;
THE CLIFTON_ABCD
THE FOODIE BA_ABCD
THE HOME UBON_ABCD
MAKRONO_ABCD
;
data want;
set have;
length name2 $30;
name2 = prxchange('s/(.+)\b.+_ABCD/$1/',-1,name);
run;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.