regexp compilation error
Chris Angelico
rosuav at gmail.com
Fri Sep 30 05:18:43 EDT 2011
On Fri, Sep 30, 2011 at 7:10 PM, Ovidiu Deac <ovidiudeac at gmail.com> wrote:
> I have the following regexp which fails to compile. Can somebody explain why?
>
>>>> re.compile(r"""^(?: [^y]* )*""", re.X)
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "/usr/lib/python2.6/re.py", line 190, in compile
> return _compile(pattern, flags)
> File "/usr/lib/python2.6/re.py", line 245, in _compile
> raise error, v # invalid expression
> sre_constants.error: nothing to repeat
>
> Is this a bug or a feature?
What version of Python are you using? It looks like you're running in
a Python 3 interpreter, and loading a Python 2 module (as shown by the
python2.6 in the path and the Python 2 error-raise syntax). You may
have a problem with your module path.
Running that line of code in Python 3.2 for Windows produces this error:
>>> re.compile(r"""^(?: [^y]* )*""", re.X)
Traceback (most recent call last):
File "<pyshell#465>", line 1, in <module>
re.compile(r"""^(?: [^y]* )*""", re.X)
File "C:\Python32\lib\re.py", line 206, in compile
return _compile(pattern, flags)
File "C:\Python32\lib\re.py", line 256, in _compile
return _compile_typed(type(pattern), pattern, flags)
File "C:\Python32\lib\functools.py", line 180, in wrapper
result = user_function(*args, **kwds)
File "C:\Python32\lib\re.py", line 268, in _compile_typed
return sre_compile.compile(pattern, flags)
File "C:\Python32\lib\sre_compile.py", line 495, in compile
code = _code(p, flags)
File "C:\Python32\lib\sre_compile.py", line 480, in _code
_compile(code, p.data, flags)
File "C:\Python32\lib\sre_compile.py", line 74, in _compile
elif _simple(av) and op is not REPEAT:
File "C:\Python32\lib\sre_compile.py", line 359, in _simple
raise error("nothing to repeat")
sre_constants.error: nothing to repeat
Does that help at all?
ChrisA
More information about the Python-list
mailing list