Santosh Kumar wrote: > Hi all, > > I am using ipython. > > 1 ) Defined a string. > > In [88]: print string > foo foobar > > 2) compiled the string to grab the "foo" word. > > In [89]: reg = re.compile("foo",re.IGNORECASE) > > 3) Now i am trying to match . > > In [90]: match = reg.match(string) > > 4) Now i print it. > > In [93]: print match.group() > foo > > Correct me if i am wrong, i am expecting both "foo" and "foobar", why is > it giving > just "foo"
re.match always gives at most one match, and that match has to start at the beginning of the string: >>> import re >>> r = re.compile("foo", re.I) >>> help(r.match) Help on built-in function match: match(...) match(string[, pos[, endpos]]) --> match object or None. Matches zero or more characters at the beginning of the string >>> r.match("bar foobar") >>> Use re.findall() if you need all matches >>> r.findall("foo FOObar") ['foo', 'FOO'] or re.finditer() if you need other information than just the matching string: >>> [m.start() for m in r.finditer("foo FOObar")] [0, 4] _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor