whats wrong with my reg expression ?

James Stroud jstroud at mbi.ucla.edu
Mon Jan 15 17:44:33 EST 2007


Gert Cuykens wrote:
> rex2=re.compile('^"(?P<value>[^]*)"$',re.M)
> 
>  File "/usr/lib/python2.5/re.py", line 180, in compile
>    return _compile(pattern, flags)
>  File "/usr/lib/python2.5/re.py", line 233, in _compile
>    raise error, v # invalid expression
> sre_constants.error: unexpected end of regular expression
> 
> ?
You probably want

rex2=re.compile('^"(?P<value>[\^]*)"$',re.M)

Because [] is a bracketed group and the ^ within a bracketed group is a 
negation, but you have negated nothing before closing the group.
Alternatively:

rex2=re.compile('^"(?P<value>\^*)"$',re.M)

Would have the same meaning, avoiding the bracketed group altogether.

James



More information about the Python-list mailing list