Hi,

I think there is a residual problem related to the bug reported below.  A 
customer of ours is trying to match an IP address using the pattern:

((1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\.){3}(1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])

which should match: 192.168.254.0 but doesn't.

I've tried the version of xmlregexp.c in 2.6.30 and the 2007-11-19 version 
included in today's libxml2-cvs-snapshot.tar.gz snapshot.

If I manually expand the effect of the {3} as below, then the pattern 
matches OK.

((1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\.)((1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\.)((1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\.)(1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])

Also, if I change the pattern to: (i.e. {3} -> {3,4}):

((1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])\.){3,4}(1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])

that matches OK as well.

I've tried to reduce the expression to find out where the problem is. 
Interesting I've found that flipping the order around of the expressions 
makes it work.  i.e. when I move the 1?... part to be the last | expression 
the pattern matches OK!:

((2[0-4][0-9]|25[0-5]|1?[0-9]{1,2})\.){3}(1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])

I hope that gives some insight into the problem.

Thanks,

Pete Cordell
Codalogic
Visit http://www.codalogic.com/lmx/
for XML Schema to C++ data binding

----- Original Message ----- 
From: "Daniel Veillard" <[EMAIL PROTECTED]>
To: "Ashwin" <[EMAIL PROTECTED]>
Cc: <[email protected]>; <[EMAIL PROTECTED]>
Sent: Wednesday, August 22, 2007 4:43 PM
Subject: Re: [xml] Regexp Failure


> On Mon, Aug 20, 2007 at 06:32:43PM +0530, Ashwin wrote:
>>
>>    Hi,
>>
>>       I  think  the  problem  occurs when we have the minimum range as 0,
>>    otherwise  it  works fine. I suppose the problem lies somewhere in the
>>    generation  of epsilon states when the minimum range is zero (There is
>>    a  separate bit of code for precisely that condition which I am trying
>>    to work out at present:) ) Any pointers....
>>
>>    Thanks!!
>
>  Yes this was related to minimum range 0, and also to a problematic
> epsilon transition, but the fix required to changes parts of the graph
> generation.
>
> Daniel
>
> -- 
> Red Hat Virtualization group http://redhat.com/virtualization/
> Daniel Veillard      | virtualization library  http://libvirt.org/
> [EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
> http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/
> _______________________________________________
> xml mailing list, project page  http://xmlsoft.org/
> [email protected]
> http://mail.gnome.org/mailman/listinfo/xml
> 


_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to