From: Raymond Hettinger Date: Mon, 12 Sep 2005 22:50:37 +0000 (+0000) Subject: Speed-up escape() X-Git-Tag: v2.5a0~1387 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=ebb7f30111ce72b40081f5db29317fd8b0e23d79;p=thirdparty%2FPython%2Fcpython.git Speed-up escape() --- diff --git a/Lib/sre.py b/Lib/sre.py index 7969723e3f44..a33e34e4e1ed 100644 --- a/Lib/sre.py +++ b/Lib/sre.py @@ -188,12 +188,18 @@ def template(pattern, flags=0): "Compile a template pattern, returning a pattern object" return _compile(pattern, flags|T) +_alphanum = {} +for c in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890': + _alphanum[c] = 1 +del c + def escape(pattern): "Escape all non-alphanumeric characters in pattern." s = list(pattern) + alphanum = _alphanum for i in range(len(pattern)): c = pattern[i] - if not ("a" <= c <= "z" or "A" <= c <= "Z" or "0" <= c <= "9"): + if c not in alphanum: if c == "\000": s[i] = "\\000" else: