- data old;
- input name $60.;
- datalines;
- Judith S Reaveley
- Ralph F. Morgan
- Jess Ennis
- Carol Echols
- Kelly Hansen Huff
- Judith
- Nick
- Jones
- ;
- data new;
- length first middle last $ 40;
- keep first middle last;
- re=prxparse('/(\S+)\s+([^\s]+\s+)?(\S+)/o');
- set old;
- if prxmatch(re, name) then
- do;
- first=prxposn(re, 1, name);
- middle=prxposn(re, 2, name);
- last=prxposn(re, 3, name);
- output;
- end;
- run;