BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
ammarhm
Lapis Lazuli | Level 10

Hi everyone

 

@Ksharp gave a great solusion to the probelm of extracting a sentence with keyword from a text:

 


data want;
 set have;
 pid=prxparse('/([^\.]|\.(?=\d))+\./o');
 start=1;stop=length(string);
 call prxnext(pid,start,stop,string,p,l);
 do while(p>0);
  found=substr(string,p,l);
  if find(found,'keyword','i') then output;
  call prxnext(pid,start,stop,string,p,l);
 end;
run;

Out of interest, anyinw can suggest modification to this code to also extract the sentence before the one that containes the keyword?

Thanks

1 ACCEPTED SOLUTION

Accepted Solutions
ammarhm
Lapis Lazuli | Level 10

Managed to solve it !

data want;
 set want_temp;
 pid=prxparse('/([^\.]|\.(?=\d))+\./o');
 start=1;stop=length(string);
 call prxnext(pid,start,stop,string,p,l);
 do while(p>0);
  found=substr(string,p,l);
  found2=substr(string,p2,l2);
  if find(found,'keyword','i') then output;
  p2=p; l2=l;
  call prxnext(pid,start,stop,string,p,l);
 end;
run;

View solution in original post

1 REPLY 1
ammarhm
Lapis Lazuli | Level 10

Managed to solve it !

data want;
 set want_temp;
 pid=prxparse('/([^\.]|\.(?=\d))+\./o');
 start=1;stop=length(string);
 call prxnext(pid,start,stop,string,p,l);
 do while(p>0);
  found=substr(string,p,l);
  found2=substr(string,p2,l2);
  if find(found,'keyword','i') then output;
  p2=p; l2=l;
  call prxnext(pid,start,stop,string,p,l);
 end;
run;
How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 1 reply
  • 1594 views
  • 0 likes
  • 1 in conversation