<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Text Extraction/ regex in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Text-Extraction-regex/m-p/345228#M79391</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WORK.SAMPLE;
  infile datalines dsd truncover;
  input Offer:$194.;
datalines4;
save $1.00 w/purchase/any 4 or more mix &amp;amp; match
save $0.73 w/Just For U (Limit: 1)
save $1.00 w/purchase/any 4 participating items mix &amp;amp; match
save $1.00 w/purchase/any 4 or more mix &amp;amp; match
save $1.00 w/purchase/any 4 participating items mix &amp;amp; match
"save $1.00 w/purchase/any 4 participating items mix &amp;amp; match, save $1.00 w/purchase/any 4 participating items mix &amp;amp; match"
save $4.00 w/purchase/4 or more mix or match
save $3.00 w/purchase/any6 participating items mix &amp;amp; match
save $4.00 w/purchase/any 4 participating items mix &amp;amp; match
save $3.00 (Limit: 5)
save $5.00 w/purchase/5 participating items mix &amp;amp; match
save $5.00 w/purchase/5
save $1.00 (Limit: 1)
save $1.00 (Limit: 1)
save $4.00 w/purchase/any 4 participating items mix &amp;amp; match
save $4.00 w/purchase/any 4 participating items mix &amp;amp; match
save $3.00 w/purchase/any 6 participating items mix &amp;amp; match
save $0.50 w/purchase/any 4 or more participating items mix &amp;amp; match
save $5.00 w/purchase/5 participating items mix &amp;amp; match
save $5.00 w/purchase/any 5 participating items mix &amp;amp; match
;;;;

data want;
 set sample;
 pid=prxparse('/(?&amp;lt;=purchase\/)(any)?\s*\d+/i'); 
 call prxsubstr(pid, offer, position, length);
 if position ne 0 then 
 quantity=input(compress(substr(offer, position, length),,'kd'),best.);
 drop pid;
run;
proc print;run;
 &lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 29 Mar 2017 02:24:56 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2017-03-29T02:24:56Z</dc:date>
    <item>
      <title>Text Extraction/ regex</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Text-Extraction-regex/m-p/345220#M79388</link>
      <description>&lt;P&gt;I'm attempting to extract a substring from various areas of a string.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It would be on lines that have "save $x w/purchase" and would be looking for the quantity required to buy. In line 1, it would be "4". In line 8 in would be "6" The price after "save" can be double digit dollars (i.e. $25.00) and the quantity required can also be double digits. Sometimes it appears after "purchase/", somethings "purchase/any". I guess the easiest way to boil it down would be the first complete number (1, 5, 12, etc.) after the occurence of "w/". &amp;nbsp;It seems like a straight forward function/regex but I can't seem to get one to work with all the possible permutations of order and number of positions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sample data would be&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WORK.SAMPLE;
  infile datalines dsd truncover;
  input Offer:$194.;
datalines4;
save $1.00 w/purchase/any 4 or more mix &amp;amp; match
save $0.73 w/Just For U (Limit: 1)
save $1.00 w/purchase/any 4 participating items mix &amp;amp; match
save $1.00 w/purchase/any 4 or more mix &amp;amp; match
save $1.00 w/purchase/any 4 participating items mix &amp;amp; match
"save $1.00 w/purchase/any 4 participating items mix &amp;amp; match, save $1.00 w/purchase/any 4 participating items mix &amp;amp; match"
save $4.00 w/purchase/4 or more mix or match
save $3.00 w/purchase/any6 participating items mix &amp;amp; match
save $4.00 w/purchase/any 4 participating items mix &amp;amp; match
save $3.00 (Limit: 5)
save $5.00 w/purchase/5 participating items mix &amp;amp; match
save $5.00 w/purchase/5
save $1.00 (Limit: 1)
save $1.00 (Limit: 1)
save $4.00 w/purchase/any 4 participating items mix &amp;amp; match
save $4.00 w/purchase/any 4 participating items mix &amp;amp; match
save $3.00 w/purchase/any 6 participating items mix &amp;amp; match
save $0.50 w/purchase/any 4 or more participating items mix &amp;amp; match
save $5.00 w/purchase/5 participating items mix &amp;amp; match
save $5.00 w/purchase/any 5 participating items mix &amp;amp; match
;;;;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 29 Mar 2017 01:48:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Text-Extraction-regex/m-p/345220#M79388</guid>
      <dc:creator>JoshB</dc:creator>
      <dc:date>2017-03-29T01:48:48Z</dc:date>
    </item>
    <item>
      <title>Re: Text Extraction/ regex</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Text-Extraction-regex/m-p/345228#M79391</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data WORK.SAMPLE;
  infile datalines dsd truncover;
  input Offer:$194.;
datalines4;
save $1.00 w/purchase/any 4 or more mix &amp;amp; match
save $0.73 w/Just For U (Limit: 1)
save $1.00 w/purchase/any 4 participating items mix &amp;amp; match
save $1.00 w/purchase/any 4 or more mix &amp;amp; match
save $1.00 w/purchase/any 4 participating items mix &amp;amp; match
"save $1.00 w/purchase/any 4 participating items mix &amp;amp; match, save $1.00 w/purchase/any 4 participating items mix &amp;amp; match"
save $4.00 w/purchase/4 or more mix or match
save $3.00 w/purchase/any6 participating items mix &amp;amp; match
save $4.00 w/purchase/any 4 participating items mix &amp;amp; match
save $3.00 (Limit: 5)
save $5.00 w/purchase/5 participating items mix &amp;amp; match
save $5.00 w/purchase/5
save $1.00 (Limit: 1)
save $1.00 (Limit: 1)
save $4.00 w/purchase/any 4 participating items mix &amp;amp; match
save $4.00 w/purchase/any 4 participating items mix &amp;amp; match
save $3.00 w/purchase/any 6 participating items mix &amp;amp; match
save $0.50 w/purchase/any 4 or more participating items mix &amp;amp; match
save $5.00 w/purchase/5 participating items mix &amp;amp; match
save $5.00 w/purchase/any 5 participating items mix &amp;amp; match
;;;;

data want;
 set sample;
 pid=prxparse('/(?&amp;lt;=purchase\/)(any)?\s*\d+/i'); 
 call prxsubstr(pid, offer, position, length);
 if position ne 0 then 
 quantity=input(compress(substr(offer, position, length),,'kd'),best.);
 drop pid;
run;
proc print;run;
 &lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 29 Mar 2017 02:24:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Text-Extraction-regex/m-p/345228#M79391</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-03-29T02:24:56Z</dc:date>
    </item>
  </channel>
</rss>

