Skip to content

Commit 0aa7b7b

Browse files
committed
Fix Match.lastindex and lastgroup
1 parent e6a2e04 commit 0aa7b7b

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

graalpython/lib-graalpython/_sre.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ def groupdict(self, default=None):
215215

216216
def span(self, groupnum=0):
217217
idxarg = self.__groupidx(groupnum)
218-
return (self.__result.getStart(idxarg), self.__result.getEnd(idxarg))
218+
return self.__result.getStart(idxarg), self.__result.getEnd(idxarg)
219219

220220
def start(self, groupnum=0):
221221
idxarg = self.__groupidx(groupnum)
@@ -239,11 +239,17 @@ def endpos(self):
239239

240240
@property
241241
def lastgroup(self):
242-
return self.__compiled_regex.groupCount
242+
lastindex = self.lastindex
243+
if lastindex is not None:
244+
return self.__group(lastindex)
243245

244246
@property
245247
def lastindex(self):
246-
return self.__result.getEnd(0)
248+
lastindex = None
249+
for index in range(1, self.__compiled_regex.groupCount):
250+
if self.__result.getStart(index) >= 0:
251+
lastindex = index
252+
return lastindex
247253

248254
def __repr__(self):
249255
return "<re.Match object; span=%r, match=%r>" % (self.span(), self.group())

0 commit comments

Comments
 (0)