Lapis Lazuli | Level 10

## Extract last digit from a string

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 🙂

1 ACCEPTED SOLUTION

Accepted Solutions

## Re: Extract last digit from a string

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;
2 REPLIES 2
Tourmaline | Level 20

## Re: Extract last digit from a string

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

## Re: Extract last digit from a string

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;
Discussion stats
• 2 replies
• 1914 views
• 10 likes
• 3 in conversation