summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2005-09-12 22:50:37 (GMT)
committerRaymond Hettinger <python@rcn.com>2005-09-12 22:50:37 (GMT)
commitebb7f30111ce72b40081f5db29317fd8b0e23d79 (patch)
tree360868da0ce0e0b42c51e54c365ef2a51e59c440 /Lib
parentd430726b823212b960d0cc4509b6cc27c9bbe874 (diff)
downloadcpython-ebb7f30111ce72b40081f5db29317fd8b0e23d79.zip
cpython-ebb7f30111ce72b40081f5db29317fd8b0e23d79.tar.gz
cpython-ebb7f30111ce72b40081f5db29317fd8b0e23d79.tar.bz2
Speed-up escape()
Diffstat (limited to 'Lib')
-rw-r--r--Lib/sre.py8
1 files changed, 7 insertions, 1 deletions
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: