How about:
pattern = re.compile('^([^a]|(a+[^ab]))*aaab')

Which basically says, "precede with arbitrarily many non-a's
or a sequences ending in non-b, then must have 3 as followed by a b."

cases = ["xyz123aaabbab", "xayz123aaabab", "xaaayz123aaabab",
        "xyz123aaaababaaabab", "xyz123aabbaaab", "xaaayz123abab"]
[re.search(pattern, case) is not None for case in cases]
[True, True, True, False, False, False]

--Scott David Daniels
[EMAIL PROTECTED]
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to