Commit 3554cad0 authored by Andrew M. Kuchling's avatar Andrew M. Kuchling

[Bug #1177831] Exercise (?(id)yes|no) for a group other than the first one

parent c30faa81
...@@ -235,6 +235,16 @@ class ReTests(unittest.TestCase): ...@@ -235,6 +235,16 @@ class ReTests(unittest.TestCase):
self.assertEqual(re.match('^(?:(a)|c)((?(1)|d))$', 'a').groups(), self.assertEqual(re.match('^(?:(a)|c)((?(1)|d))$', 'a').groups(),
('a', '')) ('a', ''))
# Tests for bug #1177831: exercise groups other than the first group
p = re.compile('(?P<g1>a)(?P<g2>b)?((?(g2)c|d))')
self.assertEqual(p.match('abc').groups(),
('a', 'b', 'c'))
self.assertEqual(p.match('ad').groups(),
('a', None, 'd'))
self.assertEqual(p.match('abd'), None)
self.assertEqual(p.match('ac'), None)
def test_re_groupref(self): def test_re_groupref(self):
self.assertEqual(re.match(r'^(\|)?([^()]+)\1$', '|a|').groups(), self.assertEqual(re.match(r'^(\|)?([^()]+)\1$', '|a|').groups(),
('|', 'a')) ('|', 'a'))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment