New issue 2758: strange behavior in re.sub https://bitbucket.org/pypy/pypy/issues/2758/strange-behavior-in-resub
Joseph Joseph: ### Environment ### ``` Python 2.7.13 (84a2f3e6a7f88f2fe698e473998755b3bd1a12e2, Oct 05 2017, 16:31:59) [PyPy 5.9.0 with GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)] on darwin ``` Given the following code: ``` #!python import re class Proxy: def __init__(self): self.matches = [] def repl(self, match): self.matches.append(match) return "" def main(): pat = "\$\{(\w*)\}" value = "the name is ${joseph}, the name is ${alice}" proxy = Proxy() compiled_pat = re.compile(pat) compiled_pat.sub(proxy.repl, value) for match in proxy.matches: print(match.groups()) if __name__ == "__main__": main() ``` The result of execution is: ``` (None,) (None,) ``` The expected result is: ``` ('joseph',) ('alice',) ``` But if we changed a little bit in Proxy.repl as following, the result will be correct. ``` #!python class Proxy: def __init__(self): self.matches = [] def repl(self, match): self.matches.append(match) print match.groups() . # <----------- added this line return "" ``` this bug also exists in ``` Python 3.5.3 (d72f9800a42b46a8056951b1da2426d2c2d8d502, Oct 07 2017, 08:21:37) [PyPy 5.9.0-beta0 with GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.37)] on darwin ``` _______________________________________________ pypy-issue mailing list pypy-issue@python.org https://mail.python.org/mailman/listinfo/pypy-issue