[Python-Dev] New regex module for 3.2?

MRAB python at mrabarnett.plus.com
Fri Jul 9 02:35:14 CEST 2010


Nick Coghlan wrote:
> On Fri, Jul 9, 2010 at 7:54 AM, MRAB <python at mrabarnett.plus.com> wrote:
>> You should be able to replace:
>>
>>    import re
>>
>> with:
>>
>>    import regex as re
>>
>> and still have everything work the same, ie it's backwards compatible
>> with re.
> 
> That's not what I'm asking. I'm asking what happens if you take an
> existing Python installation's re module, move it aside, and drop
> regex in its place as "re.py".
> 
> Doing that and then running Python's own test suite as well as the
> test suites of major Python applications and frameworks like Twisted,
> Zope and Django would provide solid evidence that the new version
> really *is* backwards compatible, rather than that it is *meant* to be
> backwards compatible.
> 
I had to recompile the .pyd to change its internal name from "regex" to
"re", but apart from that it passed Python's own test suite except for
where I expected it to fail:

1. Some of the inline flags are scoped; for example, putting "(?i)" at
the end of a regex will now have no effect because it's no longer a
global, all-or-nothing, flag.

2. The .sub method will treat unmatched groups in an expansion as empty
strings. The re module raises an exception in such cases, which means
that users currently need a workaround.


More information about the Python-Dev mailing list