Este es un ejemplo sencillo:Funciones de llamada de re.sub
import re
math='<m>3+5</m>'
print re.sub(r'<(.)>(\d+?)\+(\d+?)</\1>', int(r'\2') + int(r'\3'), math)
me da este error:
ValueError: invalid literal for int() with base 10: '\\2'
envía \\2
en lugar de 3
y 5
.
¿Por qué? ¿Cómo lo soluciono?
duplicado posible de [Python reemplazar patrón de encordado con la salida de la función] (http://stackoverflow.com/questions/12597370/python-replace-string-pattern-with-output-of-function) – thakis