[Python-es] Expresiones regulares por grupo

Chema Cortes pych3m4 en gmail.com
Jue Feb 10 09:50:40 CET 2011


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.

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)


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