Hola,
Entiendo que quieres buscar que todas las palabras de la cadena estén
presentes, en cualquier orden, por lo menos una vez.
Si esto es correcto, no te convendría mejor separar estas palabras y
buscarlas una por una? Una expresión regular para esto,
especialmente *si pueden cambiar de orden* me parece que sería algo
rebuscado, si es que es posible (no se me ocurre como
de momento). Algo así como:
# s es la cadena a probar; cad contiene las palabras a buscar en 's'.
s = "xxxxx"
for p in cad.split():
if not s.find(p):
return 'no-match'
# si llega aqui, encontró todas las palabras de la lista
return 'match'
Lo simple del código me sugiere que podría ser la solución más correcta
y transparente.
Gerardo
chakalinux wrote:
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.
...
Un saludo
------------------------------------------------------------------------
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/