[Python-es] Comparación de cadenas no sensible a acentos

Pepe Aracil pepe en diselpro.com
Mie Dic 29 12:50:24 CET 2010


Hola.

Para asciificar (menudo palabro) textos yo suelo utilizar esta función:

from unicodedata import lookup, name

def normalize(s, encoding = "UTF-8"):
    if not isinstance(s,unicode):
        s = s.decode(encoding)

    ret = u""
    for c in s:
        n = name(c)
        pos = n.find("WITH")
        if pos >= 0:
            n = n[:pos]
        n = lookup(n.strip())
        ret += n
    return ret




normalize(u"una cigüeña hábil") == u"una ciguena habil"


Saludos.







El 11 de diciembre de 2010 08:39, Chema Cortes <py en ch3m4.org> escribió:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> El 10/12/10 07:26, Luis Miguel Morillas escribió:
>
> >> Gracias, la verdad es que me sonaba esto del normalize pero estaba
> bloqueado :-P
>
> Siempre tienes los archivos de la lista para estos casos:
>
> http://mail.python.org/pipermail/python-es/2007-March/016737.html
>
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.10 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iQEcBAEBAgAGBQJNAyqoAAoJEFdWyBWwhL4FzaAH/2035m42DWocMoPkOdbdZ9Gt
> vlf/VYYU5lu6b2TGuU9VDvrLOFXx6CJZowfwKDctcTqGNKgAi0qkeUKrPfnJC8SZ
> X+OmFO1WvYg3BHSXxPGg31bzYG331LNAx8paE33RZeTS2mHXZiR5auapzalnK2Ha
> e3D/IEDaGaO0UyAkDv5ak3IA7/OnFDvgi6coFBCXnCpourRhVomIYzTPil1yw1gS
> JrUwO1PMSfyGrHHq+r4bATPOuNGbT5d8pH0eSTyVx2hIuwfdvtEzDZD2/Szl6/1t
> 97jQEVlAD8MPnfGUZg1SiL5H7Iy1s1Nv1epY9Bec2vowHUGQ8o/1OAISvlTHpBg=
> =ADAY
> -----END PGP SIGNATURE-----
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20101229/738a001f/attachment.html>


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