RE Engine error with sub()

Maurice LING mauriceling at acm.org
Fri Apr 15 10:31:40 EDT 2005


Hi Dennis,

Dennis Benzinger wrote:

> Maurice LING schrieb:
> 
>> Hi,
>>
>> I have the following codes:
>>
>> from __future__ import nested_scopes
> 
>  > [...]
> 
> Are you still using Python 2.1?
> 
> In every later version you don't need the
> "from __future__ import nested_scopes" line.
> 
> So, if you are using Python 2.1 I strongly recommend
> upgrading to Python 2.4.1.
> 

I am using Python 2.3.5, installed using Fink. That is the latest 
version Fink has to offer.

>> [...]
>> It all works well for rule count up to 800+ but when my replacement 
>> rules swells up to 1800+, it gives me a runtime error that says 
>> "Internal error in regular expression engine"... traceable to "return 
>> self.regex.sub(self, text)" in substitute() method.
>> [...]
> 
> 
> I didn't read your code, but this sounds like you have a problem with 
> the regular expression engine being recursive in Python versions < 2.4.
> Try again using Python 2.4 or later (i.e. Python 2.4.1). The new regular 
> expression engine is not recursive anymore.
> 

Apparently this problem had been reported in Bugs item #857676 
(http://mail.python.org/pipermail/python-bugs-list/2003-December/021473.html) 
and (http://www.lehuen.com/nicolas/index.php/Pytst/2005/04). Bugs item 
#857676 is consistent with my problem as in it works with smaller lists 
(~1000) but not much bigger than that. The problem seems to lie in the 
fact that the SRE engine works on a 16-bit opcode...

Cheers
Maurice



More information about the Python-list mailing list