summaryrefslogtreecommitdiffstats
path: root/Doc/library/re.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/library/re.rst')
-rw-r--r--Doc/library/re.rst14
1 files changed, 13 insertions, 1 deletions
diff --git a/Doc/library/re.rst b/Doc/library/re.rst
index c3ec777..d7eb6f6 100644
--- a/Doc/library/re.rst
+++ b/Doc/library/re.rst
@@ -539,14 +539,26 @@ form.
>>> re.split('\W+', 'Words, words, words.', 1)
['Words', 'words, words.']
+ If there are capturing groups in the separator and it matches at the start of
+ the string, the result will start with an empty string. The same holds for
+ the end of the string::
+
+ >>> re.split('(\W+)', '...words, words...')
+ ['', '...', 'words', ', ', 'words', '...', '']
+
+ That way, separator components are always found at the same relative
+ indices within the result list (e.g., if there's one capturing group
+ in the separator, the 0th, the 2nd and so forth).
+
Note that *split* will never split a string on an empty pattern match.
- For example ::
+ For example::
>>> re.split('x*', 'foo')
['foo']
>>> re.split("(?m)^$", "foo\n\nbar\n")
['foo\n\nbar\n']
+
.. function:: findall(pattern, string[, flags])
Return all non-overlapping matches of *pattern* in *string*, as a list of