我希望在最接近子字符串的位置提取兩個單詞「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