🔒 This topic is solved and locked.
Need further help from the community? Please
sign in and ask a new question.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Posted 04-29-2022 02:51 PM
(765 views)
Hello,
I'm needing to extract the middle numbers from an alphanumeric string that can have varying lengths.
This an example of the alphanumeric strings:
Have:
1) SC_NATLTAP_P_617686046__0520
2) NC_OPTUM PARTD_R_220335038421000999P__0910
Want:
1) 617686046
2) 220335038421000999P
I've used Compress, but still leaves the last 4 digits, which I don't need.
ID = Compress(clm_nb,"_","A");
Thank you in advance.
1 ACCEPTED SOLUTION
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
This assumes the substring you want always begins with the first digit in the string.
data have;
infile cards;
input x $ string &:$50.;
cards;
1) SC_NATLTAP_P_617686046__0520
2) NC_OPTUM PARTD_R_220335038421000999P__0910
;
run;
data want;
set have;
start = anydigit(string); * find location of first digit;
num = scan(substr(string, start), 1, '_'); * extract substring that end with '_';
drop x start;
run;
1 REPLY 1
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
This assumes the substring you want always begins with the first digit in the string.
data have;
infile cards;
input x $ string &:$50.;
cards;
1) SC_NATLTAP_P_617686046__0520
2) NC_OPTUM PARTD_R_220335038421000999P__0910
;
run;
data want;
set have;
start = anydigit(string); * find location of first digit;
num = scan(substr(string, start), 1, '_'); * extract substring that end with '_';
drop x start;
run;