I have a string for a number of hours, minutes and seconds, but not all three will necessarily be present. E.g. it might be "1h2m34s" or just "2m34s" or just "34s". I want to extract the numbers from the string and assign them to appropriate variables called hour, min and sec (or similar). I'm trying to use regex and lookahead but I'm getting stuck. data have;
infile datalines;
input hms:$100.;
datalines;
7s
52s
2m9s
3m43s
10m43s
1h2m13s
;;;;
run; I've tried: data get_nums_re;
retain re_hour re_min;
if _n_ = 1 then do;
re_hour = prxparse("/.*\d+(?=h).*/");
re_min = prxparse("/.*\d+(?=m).*/");
end;
set have;
hour_pos = prxposn(re_hour, 1, hms);
min_pos = prxposn(re_min, 1, hms);
run; to try and get the positions of just the hours and minutes (for example) but it's not populating the hour_pos and min_pos. How do I assign (where applicable) the relevant numbers to the relevant variables.
... View more