Match First Sequence in Regular Expression?

Roger L. Cauvin roger at deadspam.com
Thu Jan 26 12:09:18 EST 2006


"Fredrik Lundh" <fredrik at pythonware.com> wrote in message 
news:mailman.1087.1138294946.27775.python-list at python.org...
> Roger L. Cauvin wrote:
>
>> Good suggestion.  Here are some "test cases":
>>
>> "xyz123aaabbab" accept
>> "xyz123aabbaab" reject
>> "xayz123aaabab" accept
>> "xaaayz123abab" reject
>> "xaaayz123aaabab" accept
>
> $ more test.py
>
> import re
>
> print "got    expected"
> print "------ --------"
>
> testsuite = (
>    ("xyz123aaabbab", "accept"),
>    ("xyz123aabbaab", "reject"),
>    ("xayz123aaabab", "accept"),
>    ("xaaayz123abab", "reject"),
>    ("xaaayz123aaabab", "accept"),
>    )
>
> for string, result in testsuite:
>    m = re.search("aaab", string)
>    if m:
>        print "accept",
>    else:
>        print "reject",
>    print result
>
>
> $ 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.

-- 
Roger L. Cauvin
nospam_roger at cauvin.org (omit the "nospam_" part)
Cauvin, Inc.
Product Management / Market Research
http://www.cauvin-inc.com





More information about the Python-list mailing list