<?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 Complex Comma Parsing in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464309#M118370</link>
    <description>&lt;P&gt;Hi All,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a somewhat large text field that I need to parse out by comma, but only when the comma is followed by a space AND an uppercase letter.&amp;nbsp; So in the following example, the single variable containing the following text:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"Laws, regulations and policies, Parental monitoring and supervision, Positive contributions to peer group"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Would result in 3 separate variables as:&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Laws, regulations and policies&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Parental monitoring and supervision&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Positive contributions to peer group&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I've parsed fields by commas before, I suspect it has to involve ANYUPPER, but i'm unsure how to go about it. Here's how i've approached the simpler version:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;**identify the maximum number of values in the target minority group field and populate max_elem5 field;&lt;/P&gt;
&lt;P&gt;proc sql noprint;&lt;/P&gt;
&lt;P&gt;select max(count(textvar,','))+&lt;STRONG&gt;1&lt;/STRONG&gt; into :max_elem&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; **create character and string substance vars;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; array tsub_vars $ &lt;STRONG&gt;50&lt;/STRONG&gt; targsub1-targsub%eval(&amp;amp;max_elem);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; do i = &lt;STRONG&gt;1&lt;/STRONG&gt; to &amp;amp;max_elem;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tsub_vars{i} = strip(scan(textvar,i,','));&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any guidance is greatly appreciated!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;J&lt;/P&gt;</description>
    <pubDate>Wed, 23 May 2018 09:39:07 GMT</pubDate>
    <dc:creator>jsberger</dc:creator>
    <dc:date>2018-05-23T09:39:07Z</dc:date>
    <item>
      <title>Complex Comma Parsing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464309#M118370</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have a somewhat large text field that I need to parse out by comma, but only when the comma is followed by a space AND an uppercase letter.&amp;nbsp; So in the following example, the single variable containing the following text:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;"Laws, regulations and policies, Parental monitoring and supervision, Positive contributions to peer group"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Would result in 3 separate variables as:&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Laws, regulations and policies&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Parental monitoring and supervision&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Positive contributions to peer group&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I've parsed fields by commas before, I suspect it has to involve ANYUPPER, but i'm unsure how to go about it. Here's how i've approached the simpler version:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;**identify the maximum number of values in the target minority group field and populate max_elem5 field;&lt;/P&gt;
&lt;P&gt;proc sql noprint;&lt;/P&gt;
&lt;P&gt;select max(count(textvar,','))+&lt;STRONG&gt;1&lt;/STRONG&gt; into :max_elem&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; from have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; **create character and string substance vars;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; array tsub_vars $ &lt;STRONG&gt;50&lt;/STRONG&gt; targsub1-targsub%eval(&amp;amp;max_elem);&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; do i = &lt;STRONG&gt;1&lt;/STRONG&gt; to &amp;amp;max_elem;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tsub_vars{i} = strip(scan(textvar,i,','));&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any guidance is greatly appreciated!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;J&lt;/P&gt;</description>
      <pubDate>Wed, 23 May 2018 09:39:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464309#M118370</guid>
      <dc:creator>jsberger</dc:creator>
      <dc:date>2018-05-23T09:39:07Z</dc:date>
    </item>
    <item>
      <title>Re: Complex Comma Parsing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464314#M118372</link>
      <description>&lt;P&gt;Try this:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data T;
  STR="Laws, regulations and policies, Parental monitoring and supervision, Positive contributions to peer group";
  POS=prxmatch('/, [A-Z]/',STR);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;This looks for:&amp;nbsp; comma then space then an uppercase letter.&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 May 2018 09:55:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464314#M118372</guid>
      <dc:creator>ChrisNZ</dc:creator>
      <dc:date>2018-05-23T09:55:42Z</dc:date>
    </item>
    <item>
      <title>Re: Complex Comma Parsing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464348#M118376</link>
      <description>&lt;P&gt;Awesome ChrisNZ....thanks much!&lt;/P&gt;</description>
      <pubDate>Wed, 23 May 2018 12:15:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464348#M118376</guid>
      <dc:creator>jsberger</dc:creator>
      <dc:date>2018-05-23T12:15:40Z</dc:date>
    </item>
    <item>
      <title>Re: Complex Comma Parsing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464368#M118384</link>
      <description>&lt;P&gt;Base on&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/16961"&gt;@ChrisNZ&lt;/a&gt;&amp;nbsp;'s idea.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data x;
x="Laws, regulations and policies, Parental monitoring and supervision, Positive contributions to peer group";
do i=1 to 99;
 p=prxmatch('/,\s+[A-Z]/',x);
 temp=substr(x,1,p+1);
 if p=0 then temp=x;
 output;
 x=substr(x,p+1);
 if p=0 then leave;
end;
run;
proc print noobs;run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 23 May 2018 13:27:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464368#M118384</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-05-23T13:27:46Z</dc:date>
    </item>
    <item>
      <title>Re: Complex Comma Parsing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464376#M118387</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data x;
x="Laws, regulations and policies, Parental monitoring and supervision, Positive contributions to peer group";
do i=1 to 99;
 p=prxmatch('/,\s+[A-Z]/',x);
 temp=substr(x,1,p+1);
 if p=0 then temp=x;
 output;
 x=substr(x,p+1);
 if p=0 then leave;
end;
run;
proc print noobs;run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 23 May 2018 13:37:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464376#M118387</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-05-23T13:37:16Z</dc:date>
    </item>
    <item>
      <title>Re: Complex Comma Parsing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464388#M118390</link>
      <description>&lt;P&gt;Hi Kevin,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is even better...i was working through this when you posted.&amp;nbsp; Thanks both!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jason&lt;/P&gt;</description>
      <pubDate>Wed, 23 May 2018 14:03:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Complex-Comma-Parsing/m-p/464388#M118390</guid>
      <dc:creator>jsberger</dc:creator>
      <dc:date>2018-05-23T14:03:42Z</dc:date>
    </item>
  </channel>
</rss>

