self.assertEqual(re.compile(pattern).split("a.b.c"),
['a','b','c'])
+ def test_bug_581080(self):
+ iter = re.finditer(r"\s", "a b")
+ self.assertEqual(iter.next().span(), (1,2))
+ self.assertRaises(StopIteration, iter.next)
+
+ scanner = re.compile(r"\s").scanner("a b")
+ self.assertEqual(scanner.search().span(), (1, 2))
+ self.assertEqual(scanner.search(), None)
+
+ def test_bug_817234(self):
+ iter = re.finditer(r".*", "asdf")
+ self.assertEqual(iter.next().span(), (0, 4))
+ self.assertEqual(iter.next().span(), (4, 4))
+ self.assertRaises(StopIteration, iter.next)
+
+
def run_re_tests():
from test.re_tests import benchmarks, tests, SUCCEED, FAIL, SYNTAX_ERROR
if verbose:
break;
case SRE_OP_ANY_ALL:
- /* repeated dot wildcare. skip to the end of the target
+ /* repeated dot wildcard. skip to the end of the target
string, and backtrack from there */
TRACE(("|%p|%p|COUNT ANY_ALL\n", pattern, ptr));
ptr = end;
match = pattern_new_match((PatternObject*) self->pattern,
state, status);
- if ((status == 0 || state->ptr == state->start) &&
- state->ptr < state->end)
+ if (status == 0 || state->ptr == state->start)
state->start = (void*) ((char*) state->ptr + state->charsize);
else
state->start = state->ptr;
match = pattern_new_match((PatternObject*) self->pattern,
state, status);
- if ((status == 0 || state->ptr == state->start) &&
- state->ptr < state->end)
+ if (status == 0 || state->ptr == state->start)
state->start = (void*) ((char*) state->ptr + state->charsize);
else
state->start = state->ptr;