Match First Sequence in Regular Expression?
Fredrik Lundh
fredrik at pythonware.com
Thu Jan 26 12:20:10 EST 2006
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>
More information about the Python-list
mailing list