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
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.
Excellent thanks for the reply!
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
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.
Ready to level-up your skills? Choose your own adventure.