BookmarkSubscribeRSS Feed
SASPhile
Quartz | Level 8
I used the following reg expression to separate the physicians name as first and last.
_EXPR='s/(Dr.)?(\s*\S*)\s*?\S*?(\s+)(\S*)\s*(MD|M.D.)\s*/$2 $4/i';
_REGX=prxparse(_EXPR);
_PRX=prxchange(_REGX,1,name);
* split parsed text into desired variables;
physician_FIRST_name=scan(_PRX,1);
physician_LAST_name=scan(_PRX,2);

The above logic is not working for Dr. William Patterson.
I',m getting physician_FIRST_name as Dr and physician_last_name as William.
How to get William Patterson as first and last names.
1 REPLY 1
DanielSantos
Barite | Level 11
I'm guessing the MD|M.D. is optional, so your missing a ? after that (makes the preceding item optional).

Add the ? (see under), then it should work fine for Dr. William Patterson.
[pre]
_EXPR='s/(Dr.)?(\s*\S*)\s*?\S*?(\s+)(\S*)\s*(MD|M.D.)?\s*/$2 $4/i';
[/pre]
Cheers from Portugal

Daniel Santos @ www.cgd.pt

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 921 views
  • 0 likes
  • 2 in conversation