New submission from Ned Batchelder <[email protected]>:
In this code, the same regex is compiled with and without re.VERBOSE. Without,
it compiles fine. With, it fails with an "unterminated subpattern" error.
list_num_rx1 = r"""(?P<paren>\()?(\d+|#|[a-z])(?(paren)\)|\.)"""
list_num_rx2 = r"""(?x)(?P<paren>\()?(\d+|#|[a-z])(?(paren)\)|\.)"""
# This works:
re.compile(list_num_rx1)
# Either of these fails:
re.compile(list_num_rx1, flags=re.VERBOSE)
re.compile(list_num_rx2)
(What I really wanted was this, but the error happens without the multiline
string:)
list_num_rx = r"""(?x)
(?P<paren>\()? # maybe an opening paren
(\d+|#|[a-z]) # the number: 123, or #, or a-z
(?(paren) # if we had an opening paren..
\)| # then we need a closing paren
\. # otherwise a dot.
)
"""
----------
components: Regular Expressions
messages: 416340
nosy: ezio.melotti, mrabarnett, nedbat
priority: normal
severity: normal
status: open
title: "unterminated subpattern" in valid regex if re.VERBOSE is used
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue47163>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com