<?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: PrxChange: avoid spaces in wildcard replacement in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/PrxChange-avoid-spaces-in-wildcard-replacement/m-p/338828#M77242</link>
    <description>Hello,&lt;BR /&gt;&lt;BR /&gt;Does the following replacement string answer your problem ?&lt;BR /&gt;&lt;BR /&gt;/${1}0.$4/</description>
    <pubDate>Tue, 07 Mar 2017 15:09:48 GMT</pubDate>
    <dc:creator>gamotte</dc:creator>
    <dc:date>2017-03-07T15:09:48Z</dc:date>
    <item>
      <title>PrxChange: avoid spaces in wildcard replacement</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PrxChange-avoid-spaces-in-wildcard-replacement/m-p/338822#M77239</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I hope you are doing fine, I am looking for a trick in a regular expression statement.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;Question&lt;/U&gt;:Is there a direct way to &lt;STRONG&gt;avoid&lt;/STRONG&gt; placing &lt;STRONG&gt;spaces&lt;/STRONG&gt; in a 'prxchange replacement part' &lt;STRONG&gt;between a wildcard and a zero?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;U&gt;Example:&lt;/U&gt;&lt;STRONG&gt;/$1 0.$4/&lt;/STRONG&gt; (use group1, followed by a zero, followed by a dot, followed by the fourth group)?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;Problem&lt;/U&gt;: I do not want any space between '$1' and my '0' but if I write /$10.$4/ SAS wants to replace with the 10th group, followed by a dot, followed by the fourth group...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;U&gt;Background&lt;/U&gt;: I am using a regex to ensure that my lab values have a leading zero if my string looks like a number with decimals (even when preceeded by a logical operator).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;data test;&lt;BR /&gt;length a expect $40;&lt;BR /&gt;&lt;BR /&gt;a='.064';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='0.064';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='.064&amp;nbsp;&amp;nbsp; ';&amp;nbsp;&amp;nbsp; expect='0.064';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='&amp;nbsp;&amp;nbsp; .064&amp;nbsp;&amp;nbsp; ';expect='0.064';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='&amp;lt;.01';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='&amp;lt;0.01';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='1.1';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='1.1';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='.064zzz';&amp;nbsp;&amp;nbsp; expect='.064zzz';&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='0';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='0';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='99.6';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='99.6';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='&amp;lt;3.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='&amp;lt;3.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='&amp;lt;3.17zzz';&amp;nbsp; expect='&amp;lt;3.17zzz';&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='&amp;lt;=.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='&amp;lt;=0.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='&amp;gt;=.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='&amp;gt;=0.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&lt;BR /&gt;a='&amp;nbsp;&amp;nbsp; &amp;lt;=.17';&amp;nbsp; expect='&amp;lt;=0.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='&amp;nbsp;&amp;nbsp; &amp;gt;=.17';&amp;nbsp; expect='&amp;gt;=0.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;&lt;BR /&gt;a='&amp;lt;&amp;gt;.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='&amp;lt;&amp;gt;0.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='&amp;lt;=&amp;gt;.17';&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='&amp;lt;=&amp;gt;.17';&amp;nbsp;&amp;nbsp;&amp;nbsp;  output;&lt;BR /&gt;a='&amp;lt;&amp;gt;.17zzz';&amp;nbsp; expect='&amp;lt;&amp;gt;.17zzz';&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;a='.064 .064'; expect='.064 .064';&amp;nbsp; output;&lt;BR /&gt;a='&amp;gt;60';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; expect='&amp;gt;60';&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;BR /&gt;run;&lt;BR /&gt;
data test1;
   set test;
   length b $40;
   b=a;
   if prxmatch('/^\s*((&amp;lt;|&amp;gt;|=){0,2})\s*(\.)(\d+)\s*$/',a) then do;
      b=strip(tranwrd(a,'.','0.'));
   end;  
   c=prxchange('s/^\s*((&amp;lt;|&amp;gt;|=){0,2})\s*(\.)(\d+)\s*$/$1 0.$4/',1,a);

   c1=prxchange('s/^\s*((&amp;lt;|&amp;gt;|=){0,2})\s*(\.)(\d+)\s*$/$1/',1,a);
   c2=prxchange('s/^\s*((&amp;lt;|&amp;gt;|=){0,2})\s*(\.)(\d+)\s*$/$2/',1,a);
   c3=prxchange('s/^\s*((&amp;lt;|&amp;gt;|=){0,2})\s*(\.)(\d+)\s*$/$3/',1,a);
   c4=prxchange('s/^\s*((&amp;lt;|&amp;gt;|=){0,2})\s*(\.)(\d+)\s*$/$4/',1,a);

if b ne trim(expect) then FAILb='YES';
if c ne trim(expect) then FAILc='YES';
run;

/*
'^             Start of the string
\s*            any number of spaces
((&amp;lt;|&amp;gt;|=){0,2}) a combination of maximal 2 operators with &amp;lt;,&amp;gt; or = (First group)
\s*            any number of spaces
(\.)           a dot (Third group)
(\d+)          at least one digit (Fourth group)
\s*            any number of spaces
$              End of the string
*/&lt;/PRE&gt;&lt;P&gt;I would like c to get the same result as b&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 07 Mar 2017 15:14:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PrxChange-avoid-spaces-in-wildcard-replacement/m-p/338822#M77239</guid>
      <dc:creator>Oligolas</dc:creator>
      <dc:date>2017-03-07T15:14:04Z</dc:date>
    </item>
    <item>
      <title>Re: PrxChange: avoid spaces in wildcard replacement</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PrxChange-avoid-spaces-in-wildcard-replacement/m-p/338828#M77242</link>
      <description>Hello,&lt;BR /&gt;&lt;BR /&gt;Does the following replacement string answer your problem ?&lt;BR /&gt;&lt;BR /&gt;/${1}0.$4/</description>
      <pubDate>Tue, 07 Mar 2017 15:09:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PrxChange-avoid-spaces-in-wildcard-replacement/m-p/338828#M77242</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2017-03-07T15:09:48Z</dc:date>
    </item>
    <item>
      <title>Re: PrxChange: avoid spaces in wildcard replacement</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PrxChange-avoid-spaces-in-wildcard-replacement/m-p/338830#M77243</link>
      <description>&lt;P&gt;Excellent, I didn't think of placing the group number in curlys. Thanks!&lt;/P&gt;</description>
      <pubDate>Tue, 07 Mar 2017 15:15:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PrxChange-avoid-spaces-in-wildcard-replacement/m-p/338830#M77243</guid>
      <dc:creator>Oligolas</dc:creator>
      <dc:date>2017-03-07T15:15:06Z</dc:date>
    </item>
  </channel>
</rss>

