Speed-up escape()

This commit is contained in:
Raymond Hettinger 2005-09-12 22:50:37 +00:00
parent d430726b82
commit ebb7f30111
1 changed files with 7 additions and 1 deletions

View File

@ -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: