Commit 847ed4af authored by Guido van Rossum's avatar Guido van Rossum

More tweaks; re.py is nearly there...

parent 53109750
......@@ -34,7 +34,6 @@ test_re
('a[b-d]e', 'ace', 0, 'found', 'ace')
('a[b-d]', 'aac', 0, 'found', 'ac')
('a[-b]', 'a-', 0, 'found', 'a-')
=== Syntax error: ('a[-b]', 'a-', 0, 'found', 'a-')
('a[b-]', 'a-', 2)
('a[]b', '-', 2)
('a[', '-', 2)
......@@ -43,16 +42,12 @@ test_re
('(abc', '-', 2)
('a]', 'a]', 0, 'found', 'a]')
('a[]]b', 'a]b', 0, 'found', 'a]b')
=== Syntax error: ('a[]]b', 'a]b', 0, 'found', 'a]b')
('a[^bc]d', 'aed', 0, 'found', 'aed')
('a[^bc]d', 'abd', 1)
('a[^-b]c', 'adc', 0, 'found', 'adc')
=== Syntax error: ('a[^-b]c', 'adc', 0, 'found', 'adc')
('a[^-b]c', 'a-c', 1)
=== Syntax error: ('a[^-b]c', 'a-c', 1)
('a[^]b]c', 'a]c', 1)
('a[^]b]c', 'adc', 0, 'found', 'adc')
=== Failed incorrectly ('a[^]b]c', 'adc', 0, 'found', 'adc')
('\\ba\\b', 'a-', 0, '"-"', '-')
('\\ba\\b', '-a', 0, '"-"', '-')
('\\ba\\b', '-a-', 0, '"-"', '-')
......@@ -64,8 +59,7 @@ test_re
('()ef', 'def', 0, 'found+"-"+g1', 'ef-')
=== Syntax error: ('()ef', 'def', 0, 'found+"-"+g1', 'ef-')
('$b', 'b', 1)
('a(b', 'a(b', 0, 'found+"-"+g1', 'a(b-None')
=== Syntax error: ('a(b', 'a(b', 0, 'found+"-"+g1', 'a(b-None')
('a\\(b', 'a(b', 0, 'found+"-"+g1', 'a(b-None')
('a\\(*b', 'ab', 0, 'found', 'ab')
('a\\(*b', 'a((b', 0, 'found', 'a((b')
('a\\\\b', 'a\\b', 0, 'found', 'a\\b')
......@@ -113,7 +107,6 @@ test_re
('\\((.*), (.*)\\)', '(a, b)', 0, 'g2+"-"+g1', 'b-a')
('[k]', 'ab', 1)
('a[-]?c', 'ac', 0, 'found', 'ac')
=== Syntax error: ('a[-]?c', 'ac', 0, 'found', 'ac')
('(abc)\\1', 'abcabc', 0, 'g1', 'abc')
('([a-c]*)\\1', 'abcabc', 0, 'g1', 'abc')
('^(.+)?B', 'AB', 0, 'g1', 'A')
......
......@@ -136,7 +136,7 @@ tests = [
('()ef', 'def', SUCCEED,
'found+"-"+g1', 'ef-'),
('$b', 'b', FAIL),
('a(b', 'a(b', SUCCEED,
('a\\(b', 'a(b', SUCCEED,
'found+"-"+g1', 'a(b-None'),
('a\\(*b', 'ab', SUCCEED,
'found', 'ab'),
......
......@@ -41,15 +41,14 @@ for t in tests:
# Matched, as expected, so now we compute the
# result string and compare it to our expected result.
start, end = result.span(0)
vardict={'found': result.group(0)}
vardict={'found': result.group(0), 'groups': result.group()}
for i in range(1, 100):
try:
gi = result.group(i)
# Special hack because else the string concat fails:
if gi is None: gi = "None"
except IndexError:
break
else:
gi = "None"
vardict['g%d' % i] = gi
repl=eval(repl, vardict)
if repl!=expected:
......
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