Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Python: Bugs

[ python-Bugs-214033 ] re incompatibility in sre

 

 

Python bugs RSS feed   Index | Next | Previous | View Threaded


noreply at sourceforge

Mar 21, 2007, 10:49 AM

Post #1 of 1 (163 views)
Permalink
[ python-Bugs-214033 ] re incompatibility in sre

Bugs item #214033, was opened at 2000-09-11 04:24
Message generated for change (Comment added) made by collinwinter
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=214033&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Extension Modules
Group: None
Status: Open
Resolution: Accepted
Priority: 5
Private: No
Submitted By: Martin v. Löwis (loewis)
Assigned to: Fredrik Lundh (effbot)
Summary: re incompatibility in sre

Initial Comment:
[submitted by Adam Sampson]

Under Python 1.5.2, I had a script containing the following line:

m = re.match(r"[a-z0-9]*://[^/]+/.*\.([^.#\?/]*)([#\?]?.*)?", url)

Under 1.6, this fails with:

[...]
File "/usr/local/lib/python1.6/sre.py", line 44, in match
return _compile(pattern, flags).match(string)
File "/usr/local/lib/python1.6/sre.py", line 102, in _compile
raise error, v # invalid expression
sre_constants.error: nothing to repeat

I can narrow it down to:

>>> m = re.match(r"(x?)?", url)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/local/lib/python1.6/sre.py", line 44, in match
return _compile(pattern, flags).match(string)
File "/usr/local/lib/python1.6/sre.py", line 102, in _compile
raise error, v # invalid expression
sre_constants.error: nothing to repeat

whereas:

>>> m = re.match(r"(x?.)?", url)

works fine. Is this correct behaviour for SRE, or am I just being stupid?
"(x?)?" looks like a perfectly reasonable Perl-style regexp to me (and Perl
too)...


----------------------------------------------------------------------

>Comment By: Collin Winter (collinwinter)
Date: 2007-03-21 13:49

Message:
Logged In: YES
user_id=1344176
Originator: NO

The original bug no longer applies to Python 2.5.0 or 2.6a0. Trent's bug
still exists in Python 2.5.0 and 2.6a0 (where 2.6a0 == SVN r54478).

----------------------------------------------------------------------

Comment By: Georg Brandl (gbrandl)
Date: 2006-06-01 09:45

Message:
Logged In: YES
user_id=849994

#1456280 is a duplicate of this.

----------------------------------------------------------------------

Comment By: Trent Mick (tmick)
Date: 2006-04-10 19:11

Message:
Logged In: YES
user_id=34892

I've run into another incarnation of this (it breaks in
Python 2.3.5 and Python 2.4.3):

>>> import sre
>>> sre.compile("(a*)?")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "C:\Python24\Lib\sre.py", line 180, in compile
return _compile(pattern, flags)
File "C:\Python24\Lib\sre.py", line 227, in _compile
raise error, v # invalid expression
sre_constants.error: nothing to repeat

Now granted that the '?' here is redundant for the '*'
quantifier on 'a', but compiling this regex works with
Python 2.3's "pre" and it works in Perl.

The actual use case I've hit here is trying to compile all
the regex's in Fedora Core 5's SELinux config files
(/etc/selinux/targeted/contexts/files/file_contexts*). The
first such regex that broke was:
'/usr/share/selinux-policy([^/]*)?/html(/.*)?'


----------------------------------------------------------------------

Comment By: Martin v. Löwis (loewis)
Date: 2000-10-01 14:13

Message:
Yes, it is still broken in 2.0b2.

----------------------------------------------------------------------

Comment By: Guido van Rossum (gvanrossum)
Date: 2000-10-01 00:33

Message:
Martin, is this still broken in 2.0? Fredrik, any idea?

----------------------------------------------------------------------

You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=214033&group_id=5470
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/list-python-bugs%40lists.gossamer-threads.com

Python bugs RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact lists@gossamer-threads.com
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.