diff options
author | Raymond Hettinger <python@rcn.com> | 2005-09-12 22:50:37 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2005-09-12 22:50:37 (GMT) |
commit | ebb7f30111ce72b40081f5db29317fd8b0e23d79 (patch) | |
tree | 360868da0ce0e0b42c51e54c365ef2a51e59c440 | |
parent | d430726b823212b960d0cc4509b6cc27c9bbe874 (diff) | |
download | cpython-ebb7f30111ce72b40081f5db29317fd8b0e23d79.zip cpython-ebb7f30111ce72b40081f5db29317fd8b0e23d79.tar.gz cpython-ebb7f30111ce72b40081f5db29317fd8b0e23d79.tar.bz2 |
Speed-up escape()
-rw-r--r-- | Lib/sre.py | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -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: |