proctor <[EMAIL PROTECTED]> wrote: >> >>> re.findall('(.)*', 'abc') >> ['c', '']
> thank you this is interesting. in the second example, where does the > 'nothingness' match, at the end? why does the regex 'run again' when > it has already matched everything? and if it reports an empty match > along with a non-empty match, why only the two? > There are 4 possible starting points for a regular expression to match in a three character string. The regular expression would match at any starting point so in theory you could find 4 possible matches in the string. In this case they would be 'abc', 'bc', 'c', ''. However findall won't get any overlapping matches, so there are only two possible matches and it returns both of them: 'abc' and '' (or rather it returns the matching group within the match so you only see the 'c' although it matched 'abc'. If you use a regex which doesn't match an empty string (e.g. '/x(.*?)x/' then you won't get the empty match. -- http://mail.python.org/mailman/listinfo/python-list