From ebb7f30111ce72b40081f5db29317fd8b0e23d79 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Mon, 12 Sep 2005 22:50:37 +0000 Subject: Speed-up escape() --- Lib/sre.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Lib/sre.py b/Lib/sre.py index 7969723..a33e34e 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: -- cgit v0.12