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!
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.