我有一个遵循以下模式的字符串:
“从2018年7月29日到2018年8月4日” “从2018年7月22日到2018年7月28日” “从2018年7月15日到2018年7月21日”
我正在尝试提取“至”日期值,并将其转换回日期。
data have;
infile datalines truncover dlm='|' ;
input Week_Name : $100.;
datalines;
From July 29, 2018 to August 4, 2018
From July 22, 2018 to July 28, 2018
From July 15, 2018 to July 21, 2018
run;
data want;
set have;
RE=PRXPARSE("/to [A-Za-z]+ [0-9]+, [0-9]{4}/");
CALL prxsubstr(RE,STRIP(Week_Name),start,length);
IF START GT 0 then DO;
END_DT_CHAR = strip(substrn(STRIP(Week_Name),start+3,length-3));
END_DATE = input(END_DT_CHAR,anydtdte.);
end;
drop RE start length;
run;
END_DT_CHAR可以正常使用。我得到
END_DT_CHAR 八月4,2018 七月28,2018 2018年7月21日
但是 END_DATE =输入(END_DT_CHAR,任意)。
返回所有NULL