diff options
author | Raymond Hettinger <python@rcn.com> | 2005-09-12 22:50:37 +0000 |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2005-09-12 22:50:37 +0000 |
commit | ebb7f30111ce72b40081f5db29317fd8b0e23d79 (patch) | |
tree | 360868da0ce0e0b42c51e54c365ef2a51e59c440 /Lib/sre.py | |
parent | d430726b823212b960d0cc4509b6cc27c9bbe874 (diff) | |
download | cpython-git-ebb7f30111ce72b40081f5db29317fd8b0e23d79.tar.gz |
Speed-up escape()
Diffstat (limited to 'Lib/sre.py')
-rw-r--r-- | Lib/sre.py | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/Lib/sre.py b/Lib/sre.py index 7969723e3f..a33e34e4e1 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: |