BookmarkSubscribeRSS Feed
LK357
Obsidian | Level 7

Hi 

 

I am tring to extract the number following the id= from within this string below

 

http://www.blahblah/blahblah/confirmation?id=1234567&media=12345

2 REPLIES 2
ballardw
Super User

There are several ways depending on consistency of your input stream.

Here are two.

data want;
   string='http://www.blahblah/blahblah/confirmation?id=1234567&media=12345';
   /* if the ID ALWAYS appears in the same place*/
   oneway= scan(string,2,'=&');
   /* or if ID may appear in other locations*/
   /*find position of id=*/
   pos1 = index(string,'id=');
   /* find position of & AFTER the first position*/
   pos2= find(string,'&',pos1);
   otherway = substr(string,pos1+3,pos2-(pos1+3));
   /* not if your target string value exceeds 8 characters you should declare a length
   prior to use*/

run;

If the value needs to be actually numeric then you could use an INPUT such as

 

oneway = input(scan(string,2,'=&'),best16.);

But if there were any values not numeric such as id=123ABC456 that would fail.

LK357
Obsidian | Level 7

Excellent thanks for the reply!

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
  • 2 replies
  • 1268 views
  • 0 likes
  • 2 in conversation