]> granicus.if.org Git - python/commitdiff
Fix two bugs:
authorGuido van Rossum <guido@python.org>
Mon, 12 Jan 1998 18:57:53 +0000 (18:57 +0000)
committerGuido van Rossum <guido@python.org>
Mon, 12 Jan 1998 18:57:53 +0000 (18:57 +0000)
(1) maxsplit was ignored in split().

(2) groups() would return a string instead of a singleton tuple when
there was only one group.

Lib/re.py

index b3c266c7155d927e6924267647249656217cef29..3fb9408367ea8543aaef0dbcbd3704e5a79c4d66 100644 (file)
--- a/Lib/re.py
+++ b/Lib/re.py
@@ -203,6 +203,7 @@ class RegexObject:
                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 @@ class MatchObject:
     
     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."