Para hacer un cambio de expresiones regulares, hay tres cosas que darle:Regex en python: ¿es posible obtener la coincidencia, el reemplazo y la cadena final?
- El perfil de compatibilidad
- El patrón de sustitución
- La cadena original
Hay tres cosas que las el motor regex encuentra que me interesan:
- La coincidencia cadena
- La sustitución cadena
- La cadena final procesado
Al utilizar re.sub
, la cadena final es lo que se devuelve. ¿Pero es posible acceder a las otras dos cosas, la cadena combinada y la cadena de reemplazo?
He aquí 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 búsqueda es "original"
y la cadena de reemplazo es "not the original"
. ¿Hay alguna manera de obtenerlos? Estoy escribiendo una secuencia de comandos para buscar y reemplazar en muchos archivos, y quiero que imprima lo que está buscando y reemplazando, sin imprimir toda la línea.
Me he estado preguntando esto por un tiempo también. ¡Buena pregunta! – Blender
Muy buena pregunta. Y muy bien formulado. +1 – ovgolovin