mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
- added support for (?P=name)
(closes #3 and #7 from the status report)
This commit is contained in:
parent
c155f828fa
commit
b71624e698
2 changed files with 17 additions and 6 deletions
|
@ -189,9 +189,9 @@ def isname(name):
|
|||
def _group(escape, groups):
|
||||
# check if the escape string represents a valid group
|
||||
try:
|
||||
group = int(escape[1:])
|
||||
if group and group < groups:
|
||||
return group
|
||||
gid = int(escape[1:])
|
||||
if gid and gid < groups:
|
||||
return gid
|
||||
except ValueError:
|
||||
pass
|
||||
return None # not a valid group
|
||||
|
@ -442,7 +442,20 @@ def _parse(source, state, flags=0):
|
|||
raise error, "illegal character in group name"
|
||||
elif source.match("="):
|
||||
# named backreference
|
||||
raise error, "not yet implemented"
|
||||
name = ""
|
||||
while 1:
|
||||
char = source.get()
|
||||
if char is None:
|
||||
raise error, "unterminated name"
|
||||
if char == ")":
|
||||
break
|
||||
name = name + char
|
||||
if not isname(name):
|
||||
raise error, "illegal character in group name"
|
||||
gid = state.groupdict.get(name)
|
||||
if gid is None:
|
||||
raise error, "unknown group name"
|
||||
subpattern.append((GROUP, gid))
|
||||
else:
|
||||
char = source.get()
|
||||
if char is None:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue