El día 27 de enero de 2011 18:27, chakalinux <chakali...@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@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/