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;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.