<?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 Regex prxparse question validating emails in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Regex-prxparse-question-validating-emails/m-p/257090#M57205</link>
    <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;I need some help to understand why this regexpression does not work and the otherone does?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Works:&lt;/P&gt;&lt;P&gt;prxparse('/\w[-.\w]*\@[-\w]+(\.[-\w]+)*\.(no|com|edu|gov|int|mil|net|org|biz|info|name|museum|coop|aero|[a-z][a-z])/i')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does not work:&lt;/P&gt;&lt;P&gt;prxparse('/^[a-zA-Z0-9.!#$%&amp;amp;*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I try to validate emails using this code replacing the prxparse expression that does not work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%LET Myvariable = TheVariable;&lt;BR /&gt;data WORK.OUT;&lt;BR /&gt;&amp;nbsp; re =&lt;BR /&gt;&amp;nbsp; prxparse('/\w[-.\w]*\@[-\w]+(\.[-\w]+)*\.(no|com|edu|gov|int|mil|net|org|biz|info|name|museum|coop|aero|[a-z][a-z])/i');&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; do until(eof);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set _infile_ end=eof;&lt;BR /&gt;if ^prxmatch(re,&amp;amp;MyVariable) then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* appropriate lines of code */&lt;BR /&gt;keep &amp;amp;Myvariable;&lt;BR /&gt;output;&lt;BR /&gt;end;&lt;BR /&gt;end;&lt;BR /&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LOG:&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&amp;nbsp; Macro variable MYREGEXPRESION resolves to&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '/^[a-zA-Z0-9.!#$%&amp;amp;*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -zA-Z0-9])?)*$/'&lt;BR /&gt;36&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*prxparse('/\w[-.\w]*\@[-\w]+(\.[-\w]+)*\.(no|com|edu|gov|int|mil|net|org|biz|info|name|museum|coop|aero|[a-z][a-z])/i&lt;BR /&gt;36&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! ');*/&lt;BR /&gt;37&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;38&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until(eof);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 79&lt;BR /&gt;ERROR 79-322: Expecting a ;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Your help is much obliged&lt;/P&gt;</description>
    <pubDate>Wed, 16 Mar 2016 18:15:00 GMT</pubDate>
    <dc:creator>sveinola_gundhus_tv2_no</dc:creator>
    <dc:date>2016-03-16T18:15:00Z</dc:date>
    <item>
      <title>Regex prxparse question validating emails</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Regex-prxparse-question-validating-emails/m-p/257090#M57205</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;I need some help to understand why this regexpression does not work and the otherone does?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Works:&lt;/P&gt;&lt;P&gt;prxparse('/\w[-.\w]*\@[-\w]+(\.[-\w]+)*\.(no|com|edu|gov|int|mil|net|org|biz|info|name|museum|coop|aero|[a-z][a-z])/i')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Does not work:&lt;/P&gt;&lt;P&gt;prxparse('/^[a-zA-Z0-9.!#$%&amp;amp;*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/')&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I try to validate emails using this code replacing the prxparse expression that does not work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%LET Myvariable = TheVariable;&lt;BR /&gt;data WORK.OUT;&lt;BR /&gt;&amp;nbsp; re =&lt;BR /&gt;&amp;nbsp; prxparse('/\w[-.\w]*\@[-\w]+(\.[-\w]+)*\.(no|com|edu|gov|int|mil|net|org|biz|info|name|museum|coop|aero|[a-z][a-z])/i');&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; do until(eof);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set _infile_ end=eof;&lt;BR /&gt;if ^prxmatch(re,&amp;amp;MyVariable) then do;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* appropriate lines of code */&lt;BR /&gt;keep &amp;amp;Myvariable;&lt;BR /&gt;output;&lt;BR /&gt;end;&lt;BR /&gt;end;&lt;BR /&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LOG:&lt;/P&gt;&lt;P&gt;SYMBOLGEN:&amp;nbsp; Macro variable MYREGEXPRESION resolves to&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '/^[a-zA-Z0-9.!#$%&amp;amp;*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; -zA-Z0-9])?)*$/'&lt;BR /&gt;36&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*prxparse('/\w[-.\w]*\@[-\w]+(\.[-\w]+)*\.(no|com|edu|gov|int|mil|net|org|biz|info|name|museum|coop|aero|[a-z][a-z])/i&lt;BR /&gt;36&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! ');*/&lt;BR /&gt;37&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;38&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until(eof);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 79&lt;BR /&gt;ERROR 79-322: Expecting a ;.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Your help is much obliged&lt;/P&gt;</description>
      <pubDate>Wed, 16 Mar 2016 18:15:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Regex-prxparse-question-validating-emails/m-p/257090#M57205</guid>
      <dc:creator>sveinola_gundhus_tv2_no</dc:creator>
      <dc:date>2016-03-16T18:15:00Z</dc:date>
    </item>
    <item>
      <title>Re: Regex prxparse question validating emails</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Regex-prxparse-question-validating-emails/m-p/257102#M57206</link>
      <description>&lt;P&gt;First, the log you posted has an irrelevant syntax error...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;More importantly, I feel that this is a small bug in the PRX parser where the literal '$' is being confused for a Perl variable reference. &amp;nbsp;It is, thankfully, also very easy to work-around.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The below, I believe, is what you wanted, except fixed to properly comply with the RFC 2822 simplified specification (you had removed the single quotes) and the the '$' characters escaped to avoid the prx parsing error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;prxparse('/[a-z0-9!#\$%&amp;amp;''*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#\$%&amp;amp;''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i');&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data foo;&lt;BR /&gt;if _n_=1 then do;&lt;BR /&gt;retain prxid;&lt;BR /&gt;call prxdebug(1);&lt;BR /&gt;prxid=prxparse('/[a-z0-9!#\$%&amp;amp;''*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#\$%&amp;amp;''*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i');&lt;BR /&gt;call prxdebug(0);&lt;BR /&gt;end;&lt;/P&gt;&lt;P&gt;input email : &amp;amp; $400. ;&lt;/P&gt;&lt;P&gt;x=prxmatch(prxid,email);&lt;/P&gt;&lt;P&gt;cards;&lt;BR /&gt;president@whitehouse.gov&lt;BR /&gt;ip@1.2.3.123&lt;BR /&gt;pharaoh@egyptian.museum&lt;BR /&gt;john.doe+regexbuddy@gmail.com&lt;BR /&gt;Mike.O'Dell@ireland.com&lt;BR /&gt;"Mike\ O'Dell"@ireland.com&lt;BR /&gt;IPguy@[1.2.3.4]&lt;BR /&gt;===&lt;BR /&gt;1024x768@60Hz&lt;BR /&gt;not.a.valid.email&lt;BR /&gt;not@valid.email&lt;BR /&gt;john@aol...com&lt;BR /&gt;Mike\ O'Dell@ireland.com&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Mar 2016 19:33:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Regex-prxparse-question-validating-emails/m-p/257102#M57206</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2016-03-16T19:33:05Z</dc:date>
    </item>
    <item>
      <title>Re: Regex prxparse question validating emails</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Regex-prxparse-question-validating-emails/m-p/257165#M57213</link>
      <description>This solution works fine for me.&lt;BR /&gt;Thank you very much, this was great help</description>
      <pubDate>Wed, 16 Mar 2016 21:38:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Regex-prxparse-question-validating-emails/m-p/257165#M57213</guid>
      <dc:creator>sveinola_gundhus_tv2_no</dc:creator>
      <dc:date>2016-03-16T21:38:47Z</dc:date>
    </item>
  </channel>
</rss>

