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.12269e-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