mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Recompile pattern if (?x) flag was found inside the pattern during the
first scan. Closes bug #115040.
This commit is contained in:
parent
4ae8ef84da
commit
d11b5e54f0
2 changed files with 9 additions and 2 deletions
|
@ -593,6 +593,11 @@ def parse(str, flags=0, pattern=None):
|
||||||
|
|
||||||
# p.dump()
|
# p.dump()
|
||||||
|
|
||||||
|
if not (flags & SRE_FLAG_VERBOSE) and p.pattern.flags & SRE_FLAG_VERBOSE:
|
||||||
|
# the VERBOSE flag was switched on inside the pattern. to be
|
||||||
|
# on the safe side, we'll parse the whole thing again...
|
||||||
|
return parse(str, p.pattern.flags)
|
||||||
|
|
||||||
return p
|
return p
|
||||||
|
|
||||||
def parse_template(source, pattern):
|
def parse_template(source, pattern):
|
||||||
|
|
|
@ -612,9 +612,11 @@ xyzabc
|
||||||
(r'(([a-z]+):)?([a-z]+)$', 'smil', SUCCEED, 'g1+"-"+g2+"-"+g3', 'None-None-smil'),
|
(r'(([a-z]+):)?([a-z]+)$', 'smil', SUCCEED, 'g1+"-"+g2+"-"+g3', 'None-None-smil'),
|
||||||
# bug 111869 (PRE/PCRE fails on this one, SRE doesn't)
|
# bug 111869 (PRE/PCRE fails on this one, SRE doesn't)
|
||||||
(r'.*d', 'abc\nabd', SUCCEED, 'found', 'abd'),
|
(r'.*d', 'abc\nabd', SUCCEED, 'found', 'abd'),
|
||||||
# bug 112468
|
# bug 112468: various expected syntax errors
|
||||||
('(', '', SYNTAX_ERROR),
|
('(', '', SYNTAX_ERROR),
|
||||||
('[\\41]', '!', SUCCEED, 'found', '!'),
|
('[\\41]', '!', SUCCEED, 'found', '!'),
|
||||||
# bug 115618
|
# bug 115040: rescan if flags are modified inside pattern
|
||||||
|
(r' (?x)foo ', 'foo', SUCCEED, 'found', 'foo'),
|
||||||
|
# bug 115618: negative lookahead
|
||||||
(r'(?<!abc)(d.f)', 'abcdefdof', SUCCEED, 'found', 'dof'),
|
(r'(?<!abc)(d.f)', 'abcdefdof', SUCCEED, 'found', 'dof'),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue