[Python-es] Expresiones regulares por grupo

lopz lowlifebob en gmail.com
Jue Feb 10 14:42:36 CET 2011


Luis miguel Morrillas y andsux gracias por las respuestas, mi pregunta
ha ido dirigida exclusivamente para
usar expresiones regulares (y es que así lo quiero hacer) y en el caso
de usar algun parser sería para algo "más grande" u obtención de
muchos datos.
Yo estoy haciendo algo pequeño, siempre he usado Beautiful Soup y es
la que mejor resultados me ha dado inclusive con
html con etiquetas incompletas o sin cerrar, de todos modos gracias de
nuevo por las respuestas


El día 10 de febrero de 2011 04:50, Chema Cortes <pych3m4 en gmail.com> escribió:
> El día 10 de febrero de 2011 02:46, lopz <lowlifebob en gmail.com> escribió:
>
>> Sabría hacerlo por partes, primero un datos luego el otro y así, pero
>> mi idea es hacerlo en una sola expresión y obtenerlo por grupos
>
> Igual es que ése es el modo, buscar cada patrón por separado. En
> general, el módulo re es bastante rápido como para que te preocupe
> hacer tres veces la búsqueda.

Hola, bueno ese era el problema que no quería hacerlo 3 veces pero si
es la forma, o la mejor así se hará

> Si sabes que los tres patrones de búsqueda van a ir en ése orden, se
> podrían encadenar:
>
> pat1="""q=(.*?)[&"]"""
> pat2="(\d{4}-\d{2}-\d{2})"
> pat3="""<p class="text">(.*?)</p>"""
>
> pat=re.compile(".*?".join((pat1,pat2,pat3)), re.DOTALL)
>
> Dos comentarios:
>
> 1) activa el flag dotall para búsquedas multilíneas
> 2) te sobraba el carácter | en el primer patrón (por lo que comentabas)

Sí, gracias por el tip, lo del caracterr | lo puse por or pero ahora
que veo no es necesario jeje
Peero sigo con la duda de que cómo sería en una sola expresión?
cómo le digo que me coja desde q= hasta </p> y lo que está en medio
agrupar partes por grupos?
¿o es que esto no se puede?

SaludOS!




-- 
lopz es libre, usa --> GNU/linux gentoo

+--[RSA 2048]--+
|  ..o.o=+       |
|   o =o*.+      |
|  . . *oO .      |
|     .EBoo      |
|      o.S         |
+--[lopz.org]--+


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