Hi, everyone:
Just wondering how to extract the red portion of the following strings?
client/data/20/0000893220-98-000530.txt
client/data/810084/0001193125-08-059176.txt
client/data/914208/0000950129-07-000703.txt
client/data/1036213/0001036213-98-000015.txt
client/data/1103345/0001103345-05-000031.txt
client/data/1161175/0000950123-10-012321.txt
The red string always fall between the third slash and the .txt portion.
I understand I need to use anypunct and anynum to solve this problem. However, after several try, I still get 0. Thank you!
data _null_; input x $100.; y=scan(x,-2,'./'); put x= y=; cards; client/data/20/0000893220-98-000530.txt client/data/810084/0001193125-08-059176.txt client/data/914208/0000950129-07-000703.txt client/data/1036213/0001036213-98-000015.txt client/data/1103345/0001103345-05-000031.txt client/data/1161175/0000950123-10-012321.txt ; run;
Ksharp
data _null_; input x $100.; y=scan(x,-2,'./'); put x= y=; cards; client/data/20/0000893220-98-000530.txt client/data/810084/0001193125-08-059176.txt client/data/914208/0000950129-07-000703.txt client/data/1036213/0001036213-98-000015.txt client/data/1103345/0001103345-05-000031.txt client/data/1161175/0000950123-10-012321.txt ; run;
Ksharp
Thank you, Ksharp and sunilzood! It works like charm on my data. Could you explain a little bit of the more about the
y=scan(x,4,'./');
Especially, the 4 and ./ part, since there are multiple slashes... Thank you!
4 means the fourth part.
./ means take both . and / as separator .
Wow, this is concise!
Ksharp solution is Perfect , But when I tried it skipped alternate rows. A little modification just by adding " : " will work perfect. Please try:
data _null_;
input x : $ 100.;
y=scan(x,4,'./');
put x= y=;
cards;
client/data/20/0000893220-98-000530.txt
client/data/810084/0001193125-08-059176.txt
client/data/914208/0000950129-07-000703.txt
client/data/1036213/0001036213-98-000015.txt
client/data/1103345/0001103345-05-000031.txt
client/data/1161175/0000950123-10-012321.txt
;
run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.