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;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.