¿Por qué re.sub en Python no funciona correctamente en este caso de prueba?
Prueba este código.
test = ' az z bz z z stuff z z '
re.sub(r'(\W)(z)(\W)', r'\1_\2\3', test)
Esto debería reemplazar todas las z independientes con _z
Sin embargo, el resultado es:
'az _z bz _z z cosas _z _z'
Ves que hay una z que falta. Teorizo que es porque la agrupación no puede tomar el espacio entre las z para que coincida con dos z a la vez (una para espacios en blanco al final, una para espacios en blanco iniciales). ¿Hay alguna manera de arreglar esto?