DATA have;
text= "1) POLYP AT LEFT COLON: TUBULOVILLOUS. NEGATIVE FOR SERRATED.
2) POLYP AT RIGHT COLON: INFLAMMATORY. NEGATIVE FOR TUBULOVILLOUS.
3. ADENOMA AT RIGHT COLON: INFLAMMATORY. NEGATIVE FOR TUBULOVILLOUS.
4. ADENOMA FROM TRANSVERSE COLON: NEGATIVE FOR INFLAMMATORY BUT SERRATED IS FOUND.
A- ADENOMATOUS TISSUE AT LEFT COLON: TUBULOVILLOUS. NEGATIVE FOR SERRATED.
B- ADENOMATOUS TISSUE AT RIGHT COLON: INFLAMMATORY. NEGATIVE FOR TUBULOVILLOUS.
A: POLYP FROM TRANSVERSE COLON: NEGATIVE FOR INFLAMMATORY BUT SERRATED IS FOUND.
B: POLYP AT LEFT COLON: TUBULOVILLOUS. NEGATIVE FOR SERRATED."
;
RUN;
data temp;
set have;
n+1;
pid=prxparse('/\b\w\W/');
s=1;e=length(text);
call prxnext(pid,s,e,text,p,l);
do id=1 by 1 while(p>0);
want=substr(text,p,l);output;
call prxnext(pid,s,e,text,p,l);
end;
keep n p text;
run;
data want;
merge temp temp(firstobs=2 keep=n p rename=(n=_n p=_p));
if n=_n then want=substr(text,p,_p-p);
else want=substr(text,p);
if first.n then id=0;
id+1;
keep n id want;
run;
... View more