我希望在最接近子字符串的位置提取两个单词“blood”和“loss”。我有以下代码,但ID 4无法使用。我希望得到子串“失血”,而不是“血液,但失血”。需要SAS prxparse提取字符串
data test;
infile datalines truncover;
input id $2. string $80.;
datalines;
1 there is one blood something loss
2 no something else here
3 three blood loss again blood loss can not believe loss of blood
4 two bloods but blood loss
;
run;
data test1;
set test;
rx=prxparse("/blood.*?loss|loss.*?blood/i");
start=1;
stop =length(trim(string));
do until (p=0);
call prxnext(rx,start,stop,trim(string),p,l);
if p>0 then do;
sub=substr(string,p,l);
output;
end;
end;
run;
请不要在问题中包含姓名或电子邮件(并且电子邮件不应该在这里可见,这很容易被垃圾邮件发送者窃取)。 – Joe 2015-03-30 18:56:05
你想匹配“血液”而不是“血液”,或者“血液”是否匹配,如果它确实是最接近的匹配? – Joe 2015-03-30 18:57:55
请更改“接近”,更新您的问题。 – 2015-03-30 19:03:20