Refs #32499 -- Added metacharacters helper for simplify_regex().
This commit is contained in:
parent
221b2f85fe
commit
27189af8cf
|
@ -142,6 +142,11 @@ named_group_matcher = _lazy_re_compile(r'\(\?P(<\w+>)')
|
||||||
unnamed_group_matcher = _lazy_re_compile(r'\(')
|
unnamed_group_matcher = _lazy_re_compile(r'\(')
|
||||||
|
|
||||||
|
|
||||||
|
def replace_metacharacters(pattern):
|
||||||
|
"""Remove unescaped metacharacters from the pattern."""
|
||||||
|
return pattern.replace('^', '').replace('$', '').replace('?', '')
|
||||||
|
|
||||||
|
|
||||||
def replace_named_groups(pattern):
|
def replace_named_groups(pattern):
|
||||||
r"""
|
r"""
|
||||||
Find named groups in `pattern` and replace them with the group name. E.g.,
|
Find named groups in `pattern` and replace them with the group name. E.g.,
|
||||||
|
|
|
@ -8,7 +8,7 @@ from django.contrib import admin
|
||||||
from django.contrib.admin.views.decorators import staff_member_required
|
from django.contrib.admin.views.decorators import staff_member_required
|
||||||
from django.contrib.admindocs import utils
|
from django.contrib.admindocs import utils
|
||||||
from django.contrib.admindocs.utils import (
|
from django.contrib.admindocs.utils import (
|
||||||
replace_named_groups, replace_unnamed_groups,
|
replace_metacharacters, replace_named_groups, replace_unnamed_groups,
|
||||||
)
|
)
|
||||||
from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist
|
from django.core.exceptions import ImproperlyConfigured, ViewDoesNotExist
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
@ -412,8 +412,7 @@ def simplify_regex(pattern):
|
||||||
"""
|
"""
|
||||||
pattern = replace_named_groups(pattern)
|
pattern = replace_named_groups(pattern)
|
||||||
pattern = replace_unnamed_groups(pattern)
|
pattern = replace_unnamed_groups(pattern)
|
||||||
# clean up any outstanding regex-y characters.
|
pattern = replace_metacharacters(pattern)
|
||||||
pattern = pattern.replace('^', '').replace('$', '').replace('?', '')
|
|
||||||
if not pattern.startswith('/'):
|
if not pattern.startswith('/'):
|
||||||
pattern = '/' + pattern
|
pattern = '/' + pattern
|
||||||
return pattern
|
return pattern
|
||||||
|
|
Loading…
Reference in New Issue