[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