mirror of
https://github.com/python/cpython.git
synced 2025-07-23 19:25:40 +00:00
Speed-up escape()
This commit is contained in:
parent
d430726b82
commit
ebb7f30111
1 changed files with 7 additions and 1 deletions
|
@ -188,12 +188,18 @@ def template(pattern, flags=0):
|
||||||
"Compile a template pattern, returning a pattern object"
|
"Compile a template pattern, returning a pattern object"
|
||||||
return _compile(pattern, flags|T)
|
return _compile(pattern, flags|T)
|
||||||
|
|
||||||
|
_alphanum = {}
|
||||||
|
for c in 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890':
|
||||||
|
_alphanum[c] = 1
|
||||||
|
del c
|
||||||
|
|
||||||
def escape(pattern):
|
def escape(pattern):
|
||||||
"Escape all non-alphanumeric characters in pattern."
|
"Escape all non-alphanumeric characters in pattern."
|
||||||
s = list(pattern)
|
s = list(pattern)
|
||||||
|
alphanum = _alphanum
|
||||||
for i in range(len(pattern)):
|
for i in range(len(pattern)):
|
||||||
c = pattern[i]
|
c = pattern[i]
|
||||||
if not ("a" <= c <= "z" or "A" <= c <= "Z" or "0" <= c <= "9"):
|
if c not in alphanum:
|
||||||
if c == "\000":
|
if c == "\000":
|
||||||
s[i] = "\\000"
|
s[i] = "\\000"
|
||||||
else:
|
else:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue