[Python-es] Problemas con expresión regular

Narcis Garcia - GiLUG informatica en actiu.net
Mar Mayo 18 13:24:55 CEST 2010


Yo convertiría el diccionario por ejemplo con el editor de texto plano 
de Gnome (gedit): abrir el fichero, 'guardar como', y seleccionar UTF8 
en el desplegable de la codificación de carácteres.


En/na Chema Cortes ha escrit:
> El día 18 de mayo de 2010 02:50, Andreina Mejia
> <andreinamejia en gmail.com> escribió:
>> Si imprime bien, pero el problema está en que las palabras que contiene
>> Diccionario.txt no están en utf-8 por lo que no me corrige las palabras
>> acentuadas o las q tengan 'ñ'... por eso la salida es del tipo d\xc3\xada.
>>
>> Cómo hago para colocar todo el contenido de Diccionario.txt en utf-8?
> 
> Abre el fichero con 'codecs.open'
> 
>   import codecs
>   NWORDS = train(words(codecs.open('Diccionario.txt',encoding='latin1').read()))
> 
> En realidad la pregunta está mal hecha. Debería ser: ¿cómo abrir un
> fichero codificado en XXX para leerlo como unicode? No es lo mismo
> hablar de cadenas unicode que de codificaciones utf8. Una vez creados,
> los objetos unicodes utilizan internamente "codepoints" para su
> representación; la codificación utf8 es una de las codificaciones que
> hay para exportar objetos unicodes para su represetación en ficheros y
> terminales.
> 
> En cuanto al resto del asunto, cuando se usa unicode en expresiones
> regulares se generalizan las reglas para detectar palabras. No es
> necesario (ni conveniente) definir explícitamente el alfabeto a usar
> puesto que basta con una expresión '\w+' para detectar cualquier
> palabra.
> 
>   re.findall("\w+",u"Niño y camión son palabras",re.U)
> 
> Ten en cuenta que con unicode funcionan mejor algunos chequeos que
> fallaban con las strings normales:
> 
>>>> 'ñ'.islower()
> 0: False
>>>> u'ñ'.islower()
> 1: True
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/



Más información sobre la lista de distribución Python-es