Roger L. Cauvin wrote: > > $ python test.py > > got expected > > --------------- > > accept accept > > reject reject > > accept accept > > reject reject > > accept accept > > Thanks, but the second test case I listed contained a typo. It should have > contained a sequence of three of the letter 'a'. The test cases should be: > > "xyz123aaabbab" accept > "xyz123aabbaaab" reject > "xayz123aaabab" accept > "xaaayz123abab" reject > "xaaayz123aaabab" accept > > Your pattern fails the second test.
$ more test.py import re print "got expected" print "------ --------" testsuite = ( ("xyz123aaabbab", "accept"), ("xyz123aabbaaab", "reject"), ("xayz123aaabab", "accept"), ("xaaayz123abab", "reject"), ("xaaayz123aaabab", "accept"), ) for string, result in testsuite: m = re.search("a+b", string) if m and len(m.group()) == 4: print "accept", else: print "reject", print result $ python test.py got expected ------ -------- accept accept reject reject accept accept reject reject accept accept </F> -- http://mail.python.org/mailman/listinfo/python-list