Hi,<br><br>i had been useful in yours information. <br><br>Thanks<br><br>By,<br>Muthu<br><br><br><div class="gmail_quote">On Fri, Sep 18, 2009 at 2:13 AM, Edi Weitz <span dir="ltr"><<a href="mailto:edi@agharta.de">edi@agharta.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Sorry for the delay.  I was on vacation and/or out of town most of the time.<br>
<br>
Your regex is wrong.  The hyphen is part of one of the alternatives<br>
(e.g. it's "10" OR "12-[012]..." and so on) which I think is not what<br>
you want.<br>
<br>
The Perl program behaves like the Regex Coach, but you don't see it.<br>
Try replacing the line 'print "okay\n"' with 'print "okay[$']\n"'<br>
(note the apostrophe there).<br>
<br>
HTH,<br>
Edi.<br>
<br>
<br>
<br>
On Sun, Aug 2, 2009 at 8:35 PM, Troy Peterson<br>
<<a href="mailto:troypennpeterson@gmail.com">troypennpeterson@gmail.com</a>> wrote:<br>
> I am writing a regex to test for valid dates in YYYY-MM-DD format.<br>
> Using this regex in a perl test program I get positive results for all dates<br>
> for the next 365 days.<br>
> Regex Coach however failes to match some such as '2010-06-30'.  I assume<br>
> this is because of the  order of the alternations and the regex wanting to<br>
> match a sub-pattern as quickly as possible.  I can resolve the issue in The<br>
> Regex Coach by adding () around the month and year patterns.<br>
> I would like to know why there is a difference between my Perl program and<br>
> Regex Coach.  Could this be implementation dependent.  Both my program and<br>
> its output are below.<br>
> I tend to think that The Regex Coach got this right.<br>
> (?# regex in The Regex Coach)<br>
>         [123456789]\d\d\d-                                           # year<br>
>          (?:<br>
>             (?:0[13578]|10|12 -  [012][123456789]|10|20|30|31)  |      #<br>
> Months with 31 days<br>
>             (?:0[469]|11      -  [012][123456789]|10|20|30   )  |      #<br>
> Months with 30 days<br>
>             (?:02             -  [012][12345678]||10|20|19   )         #<br>
> Febuary<br>
>          )<br>
> ### perl Test program<br>
> #!/iw-home/teamsite/iw-perl/bin/iwperl<br>
> use strict;<br>
> use warnings;<br>
> use Carp;<br>
> use Getopt::Long;<br>
> use Pod::Usage;<br>
> use Cwd;<br>
> use Date::Calc qw(:all);<br>
> my $dateregex = qr{<br>
>         [123456789]\d\d\d-                                           # year<br>
>          (?:<br>
>             (?:0[13578]|10|12 -  [012][123456789]|10|20|30|31)  |      #<br>
> Months with 31 days<br>
>             (?:0[469]|11      -  [012][123456789]|10|20|30   )  |      #<br>
> Months with 30 days<br>
>             (?:02             -  [012][12345678]||10|20|19   )         #<br>
> Febuary<br>
>          )<br>
> }smx;<br>
> sub testdate {<br>
>     my ($d) = (@_);<br>
>     print "$d";<br>
>     if ( $d =~ m{$dateregex}smx ) {<br>
>         print "okay\n";<br>
>     }<br>
>     else {<br>
>         print "\n";<br>
>         croak "broken";<br>
>     }<br>
> }<br>
> foreach my $d ( 1 .. 365 ) {<br>
>     my ( $year, $month, $day, $hour, $min, $sec, $doy, $dow, $dst ) =<br>
>       System_Clock();<br>
>     ( $year, $month, $day, $hour, $min, $sec ) =<br>
>       Add_Delta_DHMS( $year, $month, $day, '0', '0', '0', "$d", '0', '0',<br>
> '0' );<br>
>     my $td = sprintf( "%4d-%02d-%02d", $year, $month, $day );<br>
>     testdate("$td");<br>
> }<br>
> exit;<br>
><br>
> ##OUTPUT<br>
> 2009-08-03okay<br>
> 2009-08-04okay<br>
> 2009-08-05okay<br>
> 2009-08-06okay<br>
> 2009-08-07okay<br>
> 2009-08-08okay<br>
> 2009-08-09okay<br>
> 2009-08-10okay<br>
> 2009-08-11okay<br>
> 2009-08-12okay<br>
> 2009-08-13okay<br>
> 2009-08-14okay<br>
> 2009-08-15okay<br>
> 2009-08-16okay<br>
> 2009-08-17okay<br>
> 2009-08-18okay<br>
> 2009-08-19okay<br>
> 2009-08-20okay<br>
> 2009-08-21okay<br>
> 2009-08-22okay<br>
> 2009-08-23okay<br>
> 2009-08-24okay<br>
> 2009-08-25okay<br>
> 2009-08-26okay<br>
> 2009-08-27okay<br>
> 2009-08-28okay<br>
> 2009-08-29okay<br>
> 2009-08-30okay<br>
> 2009-08-31okay<br>
> 2009-09-01okay<br>
> 2009-09-02okay<br>
> 2009-09-03okay<br>
> 2009-09-04okay<br>
> 2009-09-05okay<br>
> 2009-09-06okay<br>
> 2009-09-07okay<br>
> 2009-09-08okay<br>
> 2009-09-09okay<br>
> 2009-09-10okay<br>
> 2009-09-11okay<br>
> 2009-09-12okay<br>
> 2009-09-13okay<br>
> 2009-09-14okay<br>
> 2009-09-15okay<br>
> 2009-09-16okay<br>
> 2009-09-17okay<br>
> 2009-09-18okay<br>
> 2009-09-19okay<br>
> 2009-09-20okay<br>
> 2009-09-21okay<br>
> 2009-09-22okay<br>
> 2009-09-23okay<br>
> 2009-09-24okay<br>
> 2009-09-25okay<br>
> 2009-09-26okay<br>
> 2009-09-27okay<br>
> 2009-09-28okay<br>
> 2009-09-29okay<br>
> 2009-09-30okay<br>
> 2009-10-01okay<br>
> 2009-10-02okay<br>
> 2009-10-03okay<br>
> 2009-10-04okay<br>
> 2009-10-05okay<br>
> 2009-10-06okay<br>
> 2009-10-07okay<br>
> 2009-10-08okay<br>
> 2009-10-09okay<br>
> 2009-10-10okay<br>
> 2009-10-11okay<br>
> 2009-10-12okay<br>
> 2009-10-13okay<br>
> 2009-10-14okay<br>
> 2009-10-15okay<br>
> 2009-10-16okay<br>
> 2009-10-17okay<br>
> 2009-10-18okay<br>
> 2009-10-19okay<br>
> 2009-10-20okay<br>
> 2009-10-21okay<br>
> 2009-10-22okay<br>
> 2009-10-23okay<br>
> 2009-10-24okay<br>
> 2009-10-25okay<br>
> 2009-10-26okay<br>
> 2009-10-27okay<br>
> 2009-10-28okay<br>
> 2009-10-29okay<br>
> 2009-10-30okay<br>
> 2009-10-31okay<br>
> 2009-11-01okay<br>
> 2009-11-02okay<br>
> 2009-11-03okay<br>
> 2009-11-04okay<br>
> 2009-11-05okay<br>
> 2009-11-06okay<br>
> 2009-11-07okay<br>
> 2009-11-08okay<br>
> 2009-11-09okay<br>
> 2009-11-10okay<br>
> 2009-11-11okay<br>
> 2009-11-12okay<br>
> 2009-11-13okay<br>
> 2009-11-14okay<br>
> 2009-11-15okay<br>
> 2009-11-16okay<br>
> 2009-11-17okay<br>
> 2009-11-18okay<br>
> 2009-11-19okay<br>
> 2009-11-20okay<br>
> 2009-11-21okay<br>
> 2009-11-22okay<br>
> 2009-11-23okay<br>
> 2009-11-24okay<br>
> 2009-11-25okay<br>
> 2009-11-26okay<br>
> 2009-11-27okay<br>
> 2009-11-28okay<br>
> 2009-11-29okay<br>
> 2009-11-30okay<br>
> 2009-12-01okay<br>
> 2009-12-02okay<br>
> 2009-12-03okay<br>
> 2009-12-04okay<br>
> 2009-12-05okay<br>
> 2009-12-06okay<br>
> 2009-12-07okay<br>
> 2009-12-08okay<br>
> 2009-12-09okay<br>
> 2009-12-10okay<br>
> 2009-12-11okay<br>
> 2009-12-12okay<br>
> 2009-12-13okay<br>
> 2009-12-14okay<br>
> 2009-12-15okay<br>
> 2009-12-16okay<br>
> 2009-12-17okay<br>
> 2009-12-18okay<br>
> 2009-12-19okay<br>
> 2009-12-20okay<br>
> 2009-12-21okay<br>
> 2009-12-22okay<br>
> 2009-12-23okay<br>
> 2009-12-24okay<br>
> 2009-12-25okay<br>
> 2009-12-26okay<br>
> 2009-12-27okay<br>
> 2009-12-28okay<br>
> 2009-12-29okay<br>
> 2009-12-30okay<br>
> 2009-12-31okay<br>
> 2010-01-01okay<br>
> 2010-01-02okay<br>
> 2010-01-03okay<br>
> 2010-01-04okay<br>
> 2010-01-05okay<br>
> 2010-01-06okay<br>
> 2010-01-07okay<br>
> 2010-01-08okay<br>
> 2010-01-09okay<br>
> 2010-01-10okay<br>
> 2010-01-11okay<br>
> 2010-01-12okay<br>
> 2010-01-13okay<br>
> 2010-01-14okay<br>
> 2010-01-15okay<br>
> 2010-01-16okay<br>
> 2010-01-17okay<br>
> 2010-01-18okay<br>
> 2010-01-19okay<br>
> 2010-01-20okay<br>
> 2010-01-21okay<br>
> 2010-01-22okay<br>
> 2010-01-23okay<br>
> 2010-01-24okay<br>
> 2010-01-25okay<br>
> 2010-01-26okay<br>
> 2010-01-27okay<br>
> 2010-01-28okay<br>
> 2010-01-29okay<br>
> 2010-01-30okay<br>
> 2010-01-31okay<br>
> 2010-02-01okay<br>
> 2010-02-02okay<br>
> 2010-02-03okay<br>
> 2010-02-04okay<br>
> 2010-02-05okay<br>
> 2010-02-06okay<br>
> 2010-02-07okay<br>
> 2010-02-08okay<br>
> 2010-02-09okay<br>
> 2010-02-10okay<br>
> 2010-02-11okay<br>
> 2010-02-12okay<br>
> 2010-02-13okay<br>
> 2010-02-14okay<br>
> 2010-02-15okay<br>
> 2010-02-16okay<br>
> 2010-02-17okay<br>
> 2010-02-18okay<br>
> 2010-02-19okay<br>
> 2010-02-20okay<br>
> 2010-02-21okay<br>
> 2010-02-22okay<br>
> 2010-02-23okay<br>
> 2010-02-24okay<br>
> 2010-02-25okay<br>
> 2010-02-26okay<br>
> 2010-02-27okay<br>
> 2010-02-28okay<br>
> 2010-03-01okay<br>
> 2010-03-02okay<br>
> 2010-03-03okay<br>
> 2010-03-04okay<br>
> 2010-03-05okay<br>
> 2010-03-06okay<br>
> 2010-03-07okay<br>
> 2010-03-08okay<br>
> 2010-03-09okay<br>
> 2010-03-10okay<br>
> 2010-03-11okay<br>
> 2010-03-12okay<br>
> 2010-03-13okay<br>
> 2010-03-14okay<br>
> 2010-03-15okay<br>
> 2010-03-16okay<br>
> 2010-03-17okay<br>
> 2010-03-18okay<br>
> 2010-03-19okay<br>
> 2010-03-20okay<br>
> 2010-03-21okay<br>
> 2010-03-22okay<br>
> 2010-03-23okay<br>
> 2010-03-24okay<br>
> 2010-03-25okay<br>
> 2010-03-26okay<br>
> 2010-03-27okay<br>
> 2010-03-28okay<br>
> 2010-03-29okay<br>
> 2010-03-30okay<br>
> 2010-03-31okay<br>
> 2010-04-01okay<br>
> 2010-04-02okay<br>
> 2010-04-03okay<br>
> 2010-04-04okay<br>
> 2010-04-05okay<br>
> 2010-04-06okay<br>
> 2010-04-07okay<br>
> 2010-04-08okay<br>
> 2010-04-09okay<br>
> 2010-04-10okay<br>
> 2010-04-11okay<br>
> 2010-04-12okay<br>
> 2010-04-13okay<br>
> 2010-04-14okay<br>
> 2010-04-15okay<br>
> 2010-04-16okay<br>
> 2010-04-17okay<br>
> 2010-04-18okay<br>
> 2010-04-19okay<br>
> 2010-04-20okay<br>
> 2010-04-21okay<br>
> 2010-04-22okay<br>
> 2010-04-23okay<br>
> 2010-04-24okay<br>
> 2010-04-25okay<br>
> 2010-04-26okay<br>
> 2010-04-27okay<br>
> 2010-04-28okay<br>
> 2010-04-29okay<br>
> 2010-04-30okay<br>
> 2010-05-01okay<br>
> 2010-05-02okay<br>
> 2010-05-03okay<br>
> 2010-05-04okay<br>
> 2010-05-05okay<br>
> 2010-05-06okay<br>
> 2010-05-07okay<br>
> 2010-05-08okay<br>
> 2010-05-09okay<br>
> 2010-05-10okay<br>
> 2010-05-11okay<br>
> 2010-05-12okay<br>
> 2010-05-13okay<br>
> 2010-05-14okay<br>
> 2010-05-15okay<br>
> 2010-05-16okay<br>
> 2010-05-17okay<br>
> 2010-05-18okay<br>
> 2010-05-19okay<br>
> 2010-05-20okay<br>
> 2010-05-21okay<br>
> 2010-05-22okay<br>
> 2010-05-23okay<br>
> 2010-05-24okay<br>
> 2010-05-25okay<br>
> 2010-05-26okay<br>
> 2010-05-27okay<br>
> 2010-05-28okay<br>
> 2010-05-29okay<br>
> 2010-05-30okay<br>
> 2010-05-31okay<br>
> 2010-06-01okay<br>
> 2010-06-02okay<br>
> 2010-06-03okay<br>
> 2010-06-04okay<br>
> 2010-06-05okay<br>
> 2010-06-06okay<br>
> 2010-06-07okay<br>
> 2010-06-08okay<br>
> 2010-06-09okay<br>
> 2010-06-10okay<br>
> 2010-06-11okay<br>
> 2010-06-12okay<br>
> 2010-06-13okay<br>
> 2010-06-14okay<br>
> 2010-06-15okay<br>
> 2010-06-16okay<br>
> 2010-06-17okay<br>
> 2010-06-18okay<br>
> 2010-06-19okay<br>
> 2010-06-20okay<br>
> 2010-06-21okay<br>
> 2010-06-22okay<br>
> 2010-06-23okay<br>
> 2010-06-24okay<br>
> 2010-06-25okay<br>
> 2010-06-26okay<br>
> 2010-06-27okay<br>
> 2010-06-28okay<br>
> 2010-06-29okay<br>
> 2010-06-30okay<br>
> 2010-07-01okay<br>
> 2010-07-02okay<br>
> 2010-07-03okay<br>
> 2010-07-04okay<br>
> 2010-07-05okay<br>
> 2010-07-06okay<br>
> 2010-07-07okay<br>
> 2010-07-08okay<br>
> 2010-07-09okay<br>
> 2010-07-10okay<br>
> 2010-07-11okay<br>
> 2010-07-12okay<br>
> 2010-07-13okay<br>
> 2010-07-14okay<br>
> 2010-07-15okay<br>
> 2010-07-16okay<br>
> 2010-07-17okay<br>
> 2010-07-18okay<br>
> 2010-07-19okay<br>
> 2010-07-20okay<br>
> 2010-07-21okay<br>
> 2010-07-22okay<br>
> 2010-07-23okay<br>
> 2010-07-24okay<br>
> 2010-07-25okay<br>
> 2010-07-26okay<br>
> 2010-07-27okay<br>
> 2010-07-28okay<br>
> 2010-07-29okay<br>
> 2010-07-30okay<br>
> 2010-07-31okay<br>
> 2010-08-01okay<br>
> 2010-08-02okay<br>
> _______________________________________________<br>
> regex-coach site list<br>
> <a href="mailto:regex-coach@common-lisp.net">regex-coach@common-lisp.net</a><br>
> <a href="http://common-lisp.net/mailman/listinfo/regex-coach" target="_blank">http://common-lisp.net/mailman/listinfo/regex-coach</a><br>
><br>
<br>
_______________________________________________<br>
regex-coach site list<br>
<a href="mailto:regex-coach@common-lisp.net">regex-coach@common-lisp.net</a><br>
<a href="http://common-lisp.net/mailman/listinfo/regex-coach" target="_blank">http://common-lisp.net/mailman/listinfo/regex-coach</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Thanks u0026 Regards,<br><br>Muthu M. armbpo | T. Nagar | Chennai | India |<br><br>"A kind heart is a fountain of gladness, making everything in its vicinity freshen into smiles."<br>