This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author foom
Recipients akuchling, amaury.forgeotdarc, belopolsky, benjamin.peterson, bjourne, donlorenzo, ezio.melotti, foom, mortenlj, mrabarnett, pitrou, rsc, timehorse, zanella
Date 2011-01-08.03:25:39
SpamBayes Score 2.1226946e-07
Marked as misclassified No
Message-id <1294457141.71.0.884257188717.issue2650@psf.upfronthosting.co.za>
In-reply-to
Content
I just ran into the impl of escape after being surprised that '/' was being escaped, and then was completely amazed that it wasn't just implemented as a one-line re.subn. Come on, a loop for string replacement? This is *in* the freaking re module for pete's sake!

The extra special \\000 behavior seems entirely superfluous, as well. re works just fine with nul bytes in the pattern; there's no need to special case that.

So:
return  re.subn('([^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890])', '\\\\\\1', pattern)[0]

or, for the new proposed list of special chars:
return re.subn('([][.^$*+?{}\\|()])', '\\\\\\1', pattern)[0]


(pre-compilation of pattern left as an exercise to the reader)
History
Date User Action Args
2011-01-08 03:25:41foomsetrecipients: + foom, akuchling, amaury.forgeotdarc, belopolsky, pitrou, rsc, timehorse, benjamin.peterson, zanella, donlorenzo, ezio.melotti, bjourne, mortenlj, mrabarnett
2011-01-08 03:25:41foomsetmessageid: <1294457141.71.0.884257188717.issue2650@psf.upfronthosting.co.za>
2011-01-08 03:25:39foomlinkissue2650 messages
2011-01-08 03:25:39foomcreate