Estoy notando un comportamiento extraño en la biblioteca Regex de Python, y no estoy seguro de si estoy haciendo algo mal.Error en Python Regex? (re.sub con re.MULTILINE)
Si ejecuto una expresión regular en ella usando re.sub()
, con re.MULTILINE
. Parece que solo reemplaza las primeras ocurrencias. Reemplaza todas las ocurrencias si desactivo re.MULTILINE
, uso re.subn(..., count = 0, flags = re.MULTILINE)
, o compile la expresión regular usando re.compile(..., re.MULTILINE)
.
Estoy ejecutando Python 2.7 en Ubuntu 12.04.
He publicado un ejemplo al azar en:
- Pastebin.com - Salida desde la terminal
- codepad - Script, confirmando el comportamiento (a excepción de re.subn(), que es diferente de 2.5)
¿Alguien puede confirmar/denegar este comportamiento en su máquina?
EDIT: Realizado Debo seguir adelante y publicar esto en el rastreador de errores de Python. EDIT 2: Edición informó: http://bugs.python.org/msg168909
Ah, bueno, eso lo explica jaja. Cerré el problema. ¡Gracias! – eacousineau
Estaba usando 're.I' sin' flags = 'durante bastante tiempo y no sabía esto. Los doctores no te advierten sobre tal comportamiento, que creo que es un grave error. Ni siquiera recuerdo haber visto a alguien usando 'flags' y' count' explícitamente. – minerals
@minerals: si hace clic en el enlace en la respuesta; debería ver la firma de función 're.sub (pattern, repl, string, count = 0, flags = 0)' y los documentos explican qué significa el parámetro 'count'. – jfs