regexp compilation error

Chris Angelico rosuav at
Fri Sep 30 05:18:43 EDT 2011

On Fri, Sep 30, 2011 at 7:10 PM, Ovidiu Deac <ovidiudeac at> 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/", line 190, in compile
>    return _compile(pattern, flags)
>  File "/usr/lib/python2.6/", 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\", line 206, in compile
    return _compile(pattern, flags)
  File "C:\Python32\lib\", line 256, in _compile
    return _compile_typed(type(pattern), pattern, flags)
  File "C:\Python32\lib\", line 180, in wrapper
    result = user_function(*args, **kwds)
  File "C:\Python32\lib\", line 268, in _compile_typed
    return sre_compile.compile(pattern, flags)
  File "C:\Python32\lib\", line 495, in compile
    code = _code(p, flags)
  File "C:\Python32\lib\", line 480, in _code
    _compile(code,, flags)
  File "C:\Python32\lib\", line 74, in _compile
    elif _simple(av) and op is not REPEAT:
  File "C:\Python32\lib\", line 359, in _simple
    raise error("nothing to repeat")
sre_constants.error: nothing to repeat

Does that help at all?


More information about the Python-list mailing list