[issue6663] re.findall does not always return a list of strings

Phillip M. Feldman report at bugs.python.org
Fri Aug 7 21:46:19 CEST 2009


Phillip M. Feldman <pfeldman at verizon.net> added the comment:

You are right-- the documentation does say this, although it took me a 
while to understand what it means.  Thanks!

It seems as though there's a flaw in the design here, because there 
should be some mechanism for grouping elements of a regular expression 
without having findall treat these as groups for purposes of packaging 
the output.  If someone really wants to get lists of tuples out of 
findall, then it might make sense to input a tuple of strings instead of 
a single string.

Phillip

Alexey Shamrin wrote:
> Alexey Shamrin <shamrin at gmail.com> added the comment:
>
> You've made three groups with parentheses. Just drop them:
>
>   
>>>> re.findall('-?\d+[.]\d+|-?\d+[.]?|-?[.]\d+', 'asdf6.7jjjj7.33ff9')
>>>>         
> ['6.7', '7.33', '9']
>
> Everything is according to documentation: "If one or more groups are
> present in the pattern, return a list of groups; this will be a list of
> tuples if the pattern has more than one group."
>
> http://docs.python.org/library/re.html#re.findall
>
> I would suggest to close this bug.
>
> ----------
> nosy: +ash
>
> _______________________________________
> Python tracker <report at bugs.python.org>
> <http://bugs.python.org/issue6663>
> _______________________________________
>
>

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue6663>
_______________________________________


More information about the Python-bugs-list mailing list