Hi,
i want to extract all last numeric value from a given string. Datasets are given below with input and output.
data have;
input string $20.;
cards;
P@123kjh2345
r@ty56kli122
ghjgdj788jkjlk23456
;
run;
data want;
input string $20.;
cards;
2345
122
23456
;
run;
Thank you All 🙂
Hi @singhsahab,
You can also use the SCAN function to extract the last "word" (second argument -1) of the string, treating all non-digit characters as delimiters (fourth argument 'kd', third argument empty).
data want;
set have;
string=scan(string,-1,,'kd');
run;
How about
data have;
input string $20.;
cards;
P@123kjh2345
r@ty56kli122
ghjgdj788jkjlk23456
;
run;
data want(keep = string lastnum);
set have;
pid = prxparse('/(\d+)(?!.*\d)/');
if prxmatch(pid, string) then
call prxposn(pid, 1, p, l);
lastnum = substr(string, p, l);
run;
Result:
string lastnum P@123kjh2345 2345 r@ty56kli122 122 ghjgdj788jkjlk23456 23456
Hi @singhsahab,
You can also use the SCAN function to extract the last "word" (second argument -1) of the string, treating all non-digit characters as delimiters (fourth argument 'kd', third argument empty).
data want;
set have;
string=scan(string,-1,,'kd');
run;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!
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.