Regex en python: ¿es posible obtener la coincidencia, el reemplazo y la cadena final?

Para hacer una sustitución de expresiones regulares, hay tres cosas que le das:

El patrón de coincidencia El patrón de reemplazo La cadena original

Hay tres cosas que el motor de expresiones regulares encuentra que son de mi interés:

The emparejadocuerdEl reemplazocuerd La cadena procesada final

Cuando usasre.sub, la cadena final es lo que se devuelve. ¿Pero es posible acceder a las otras dos cosas, la cadena coincidente y la cadena de reemplazo?

Aquí hay un ejemplo:

orig = "This is the original string."
matchpat = "(orig.*?l)"
replacepat = "not the \\1"

final = re.sub(matchpat, replacepat, orig)
print(final)
# This is the not the original string

La cadena de coincidencia es"original" y la cadena de reemplazo es"not the original". ¿Hay alguna manera de conseguirlos? Estoy escribiendo un script para buscar y reemplazar en muchos archivos, y quiero que imprima lo que está encontrando y reemplazando, sin imprimir toda la línea.

Respuestas a la pregunta(4)

Su respuesta a la pregunta