mirror of
https://github.com/python/cpython
synced 2024-09-22 15:23:50 +00:00
Fix two bugs:
(1) maxsplit was ignored in split(). (2) groups() would return a string instead of a singleton tuple when there was only one group.
This commit is contained in:
parent
054f8fd12c
commit
2b2b3f9bcb
13
Lib/re.py
13
Lib/re.py
|
@ -203,6 +203,7 @@ def split(self, source, maxsplit=0):
|
|||
if type(g)==type( "" ): g = [g]
|
||||
results[len(results):] = list(g)
|
||||
pos = lastmatch = j
|
||||
n = n + 1
|
||||
results.append(source[lastmatch:])
|
||||
return results
|
||||
|
||||
|
@ -259,11 +260,13 @@ def span(self, g = 0):
|
|||
|
||||
def groups(self):
|
||||
"Return a tuple containing all subgroups of the match object"
|
||||
|
||||
# If _num_regs==1, we don't want to call self.group with an
|
||||
# empty tuple.
|
||||
if self.re._num_regs == 1: return ()
|
||||
return apply(self.group, tuple(range(1, self.re._num_regs) ) )
|
||||
result = []
|
||||
for g in range(1, self.re._num_regs):
|
||||
if (self.regs[g][0] == -1) or (self.regs[g][1] == -1):
|
||||
result.append(None)
|
||||
else:
|
||||
result.append(self.string[self.regs[g][0]:self.regs[g][1]])
|
||||
return tuple(result)
|
||||
|
||||
def group(self, *groups):
|
||||
"Return one or more groups of the match."
|
||||
|
|
Loading…
Reference in a new issue