[Python-es] regex

chakalinux chakalinux en gmail.com
Jue Ene 27 21:28:03 CET 2011


No lo tengo claro si es lookahead o no, el tema es buscar palabras
independientemente del orden que aparezcan

Replanteo la pregunta: ¿ Hay alguna manera usando (regex o no) para que
localice la cadena independientemente del orden ?

Se me ocurre algo como:


msg="hola gente, ubuntu esta bien. Alguien me puede decir que es?"
patron="que es ubuntu"

Comprueba(msg, patron)

def Comprueba(msg, patron):
    for word in patron.split():
        if msg.find(word) == -1:
            return False
    return True


Un saludo


El 27 de enero de 2011 19:53, Chema Cortes <pych3m4 en gmail.com> escribió:

> El día 27 de enero de 2011 18:27, chakalinux <chakalinux en gmail.com>
> escribió:
> > Hola, intento buscar palabras en una cadena usando regexp, a ver si me
> > explico, si tengo por ejemplo esta cadena:
> >
> > cad = u"hola como están"
> >
> > Quiero que me re me encuentre la cadena cad (puede variar)
> > independientemente de su posición, (creo que se llama lookahead), o sea:
> >
> > "como estan ustedes hola" => true
> > "hola, ustedes estan bien ? como están" => true
> > [...]
> >
> > Solo he llegado a esto:
> >
> > re.match("(?=.*hola)(?=.*como)(?=.*est.n)", cad)
> >
> > Esto me funciona pero no me interesa ya que me devuelve siempre true
> aunque
> > ponga: "<algo>hola <algo>como <algo>estan" y si quito ".*" no me funciona
> y
> > solo me interesa que encuentra las palabras exactas independientemente
> del
> > orden que estén.
>
> No entiendo bien qué problema planteas. El "lookahead" ("ver
> adelante") sirve para vincular un patrón de búsqueda con lo que
> aparece más adelante en la cadena. En realidad en el patrón de
> búsqueda que propones no indicas qué tiene que buscar (los "lookahead"
> no seleccionan nada).
>
> Si tienes las cosas claras, puede que el módulo 're' sirva para tus
> propósitos, pero a veces es mejor no obsesionarse con ello y tratar de
> hacerte tus propias búsquedas a medida. Otra forma de verlo es
> descomponiendo el problema en procesos más sencillos, tal vez
> concatenando dos búsquedas.
> _______________________________________________
> 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/20110127/5ca1f851/attachment.html>


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