Tengo dificultades para encontrar un error en mi script Python (2.7). Estoy obteniendo una diferencia con el uso de sub y findall en el reconocimiento de caracteres especiales.Expresiones regulares y Unicode en Python: diferencia entre sub y findall
Aquí está el código:
>>> re.sub(ur"[^-'().,\w]+", '' , u'Castañeda', re.UNICODE)
u'Castaeda'
>>> re.findall(ur"[^-'().,\w]+", u'Castañeda', re.UNICODE)
[]
Cuando uso findall, correctamente sedes n como un carácter alfabético, pero cuando se utiliza sub Sustituye a esto - tratándolo como un carácter no alfabético.
He podido obtener la funcionalidad correcta utilizando findall con string.replace, pero esto parece una mala solución. Además, quiero usar re.split, y estoy teniendo los mismos problemas que con re.sub.
Gracias de antemano por la ayuda.
¿Qué versión estás usando? Funciona perfectamente en 2.7.1 – viraptor
ActivePython 2.7.1.4 basado en Python 2.7.1. Gracias por informarme que funcionó bien para ti. Puede haber un problema con mi instalación ... Acabo de probarlo en Python 2.6.4, que también está en mi máquina, y estoy obteniendo el mismo problema – user793061
Lo probé desde la consola en ubuntu 11.04. Comenzó con LANG = en_GB.UTF-8, sin entradas de LC. – viraptor