07-01-2016 12:42 PM
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.