how to get all repeated group with regular expression

Hrvoje Niksic hniksic at xemacs.org
Fri Nov 21 09:56:33 EST 2008


scsoce <scsoce at gmail.com> writes:

> say, when I try to search and match every char  from variable length
> string, such as string '123456',  i tried re.findall( r'(\d)*, '12346'
> ) , but only get '6' and Python doc indeed say: "If a group is
> contained in a part of the pattern that matched multiple times, the
> last match is returned."

Well, re.findall(r'(\d)*', '123456') returns ['6', ''] for me, but
that's because re.findall returns the entire match, regardless of
group contents.  What you probably meant was something like
re.search(r'(\d)*', '123456').group(1), which indeed returns '6', the
contents of the last group matched.

What problem are you trying to solve?  Depending on this, the best
tool might be either findall/finditer, or search/match.



More information about the Python-list mailing list