summaryrefslogtreecommitdiff
path: root/Lib/sre_parse.py
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2014-10-10 11:06:31 +0300
committerSerhiy Storchaka <storchaka@gmail.com>2014-10-10 11:06:31 +0300
commitf93457279db986605d78972f3af7497f7bf65b62 (patch)
tree7f859773d0d8a1315504b5d3f34c22484d73095a /Lib/sre_parse.py
parent1883431a8e618c2d5771fbe823513b370f7dac45 (diff)
downloadcpython-f93457279db986605d78972f3af7497f7bf65b62.tar.gz
Issue 1519638: Now unmatched groups are replaced with empty strings in re.sub()
and re.subn().
Diffstat (limited to 'Lib/sre_parse.py')
-rw-r--r--Lib/sre_parse.py8
1 files changed, 3 insertions, 5 deletions
diff --git a/Lib/sre_parse.py b/Lib/sre_parse.py
index b9a1852823..063d1b7fda 100644
--- a/Lib/sre_parse.py
+++ b/Lib/sre_parse.py
@@ -880,14 +880,12 @@ def parse_template(source, pattern):
def expand_template(template, match):
g = match.group
- sep = match.string[:0]
+ empty = match.string[:0]
groups, literals = template
literals = literals[:]
try:
for index, group in groups:
- literals[index] = s = g(group)
- if s is None:
- raise error("unmatched group")
+ literals[index] = g(group) or empty
except IndexError:
raise error("invalid group reference")
- return sep.join(literals)
+ return empty.join(literals)