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;
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.