summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorGreg Twohig <greg@deepvantage.com>2021-08-06 13:45:17 +0300
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-08-09 08:21:43 +0200
commitfc2bd40fc76996306efc1f8de581708d8c5a2943 (patch)
treec85960fd44fc746f06cffc6a3819377f588dd764 /django
parentc99aaf14eef2a18b27bc7c2f2b17ae425ca2be49 (diff)
Fixed #32990 -- Simplified and optimized tag regex.
Thanks Chris Jerdonek for the review.
Diffstat (limited to 'django')
-rw-r--r--django/template/base.py10
1 files changed, 4 insertions, 6 deletions
diff --git a/django/template/base.py b/django/template/base.py
index a8c2e5774e..c01f36a34e 100644
--- a/django/template/base.py
+++ b/django/template/base.py
@@ -85,12 +85,10 @@ SINGLE_BRACE_END = '}'
# (e.g. strings)
UNKNOWN_SOURCE = '<unknown source>'
-# match a variable or block tag and capture the entire tag, including start/end
-# delimiters
-tag_re = (_lazy_re_compile('(%s.*?%s|%s.*?%s|%s.*?%s)' %
- (re.escape(BLOCK_TAG_START), re.escape(BLOCK_TAG_END),
- re.escape(VARIABLE_TAG_START), re.escape(VARIABLE_TAG_END),
- re.escape(COMMENT_TAG_START), re.escape(COMMENT_TAG_END))))
+# Match BLOCK_TAG_*, VARIABLE_TAG_*, and COMMENT_TAG_* tags and capture the
+# entire tag, including start/end delimiters. Using re.compile() is faster
+# than instantiating SimpleLazyObject with _lazy_re_compile().
+tag_re = re.compile(r'({%.*?%}|{{.*?}}|{#.*?#})')
logger = logging.getLogger('django.template')