Я просматриваю медицинские записи, чтобы отразить все случаи фразы, в частности «производство карбапенемазы».Иногда эта фраза может встречаться> 1 раз в строке.Из некоторых исследований я думаю, что PRXNEXT был бы наиболее разумным, но мне трудно заставить его делать то, что я хочу.В качестве примера для этой строки:
, если нужны результаты по амикацину, пожалуйста, сообщите микробиологической лаборатории в ext для дальнейшего тестирования организма до тех пор, пока не будет получен результат меропенема, полученный с помощью диск-диффузии, предположительно производящей карбапенемазу.r pcr результаты не подтверждены, производящие карбапенемазу cre
Из приведенного выше комментария я хотел бы извлечь фразы
предполагаемое производство карбапенемаз
и
не подтверждено получение карбапенемазы
Я понимаю, что не могу извлечь, я не думаю, эти точные фразы, но некоторые вариации с подстрокой.Код, который я использовал, я нашел здесь.Вот что у меня пока есть, но это только захват первой фразы:
carba_cnt = count(as_comments,'carba','i');
if _n_ = 1 then do;
retain reg1 neg1;
reg1 = prxparse("/ca[bepr]\w+ prod/");
end;
start = 1;
stop = length(as_comments);
position = 0;
length = 0;
/* Use PRXNEXT to find the first instance of the pattern, */
/* then use DO WHILE to find all further instances. */
/* PRXNEXT changes the start parameter so that searching */
/* begins again after the last match. */
call prxnext(reg1, start, stop, as_comments, position, length);
lastpos = 0;
do while (position > 0);
if lastpos then do;
length found $200;
found = substr(as_comments,lastpos,position-lastpos);
put found=;
output;
end;
lastpos = position;
call prxnext(reg1, start, stop, as_comments, position, length);
end;
if lastpos then do;
found = substr(as_comments,lastpos);
put found=;
output;
end;