[Python-checkins] [2.7] bpo-32211: Document the existing bug in re.findall() and re.finditer(). (GH-4695). (#5096)

Serhiy Storchaka webhook-mailer at python.org
Thu Jan 4 07:08:34 EST 2018


https://github.com/python/cpython/commit/ca54740f257086393106d242644d450485180b96
commit: ca54740f257086393106d242644d450485180b96
branch: 2.7
author: Serhiy Storchaka <storchaka at gmail.com>
committer: GitHub <noreply at github.com>
date: 2018-01-04T14:08:27+02:00
summary:

[2.7] bpo-32211: Document the existing bug in re.findall() and re.finditer(). (GH-4695). (#5096)

(cherry picked from commit 1e6d8525f9dd3dcdc83adb93b164082c8b95d17a)

files:
M Doc/library/re.rst

diff --git a/Doc/library/re.rst b/Doc/library/re.rst
index 22340818e26..c424230e13a 100644
--- a/Doc/library/re.rst
+++ b/Doc/library/re.rst
@@ -611,14 +611,21 @@ form.
       Added the optional flags argument.
 
 
+
 .. function:: findall(pattern, string, flags=0)
 
    Return all non-overlapping matches of *pattern* in *string*, as a list of
    strings.  The *string* is scanned left-to-right, and matches are returned in
    the order found.  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.  Empty matches are included in the result unless they touch the
-   beginning of another match.
+   one group.  Empty matches are included in the result.
+
+   .. note::
+
+      Due to the limitation of the current implementation the character
+      following an empty match is not included in a next match, so
+      ``findall(r'^|\w+', 'two words')`` returns ``['', 'wo', 'words']``
+      (note missed "t").  This is changed in Python 3.7.
 
    .. versionadded:: 1.5.2
 
@@ -631,8 +638,7 @@ form.
    Return an :term:`iterator` yielding :class:`MatchObject` instances over all
    non-overlapping matches for the RE *pattern* in *string*.  The *string* is
    scanned left-to-right, and matches are returned in the order found.  Empty
-   matches are included in the result unless they touch the beginning of another
-   match.
+   matches are included in the result.  See also the note about :func:`findall`.
 
    .. versionadded:: 2.2
 



More information about the Python-checkins mailing list