[Python-es] Buscar reiterativamente un patrón

miguel zamora m. mzmprog en gmail.com
Sab Oct 13 10:06:00 CEST 2012


Haslo  lo mas simple posible KISS







El día 12 de octubre de 2012 21:52, Chema Cortes <pych3m4 en gmail.com> escribió:
> El día 12 de octubre de 2012 17:15, alito s <alito81 en gmail.com> escribió:
>> Si, un ejemplo es el siguiente:
>>
>>> YPR203W_COILS, 1-15, 49-74, 88-102
>>> YPR203W_HOTLOOPS, 1-18, 50-76
>>
>> En cada línea cambia lo del principio. Lo que a mi me interesa es que se
>> reste lo que hay antes y después del guión, para cada guión.
>
> Volviendo a tu código con regex, bastaría cambiar el 'search' por
> 'findall' para que localizar todas las ocurrencias:
>
> mysearch = inp.readlines()
> for line in mysearch:
>     y = re.findall(r"(\d+(?=[-]))", line)
>     z = re.findall(r"((?<=[-])\d+)", line)
>
>     if y:
>       print [int(b)-int(a) for (a,b) in zip(y,z)]
>
>
> Optimizando, una sóla expresión regular y sacando el patrón fuera del
> bucle, quedaría así:
>
> pat = re.compile(r"(\d+)[-](\d+)")
>
> for line in inp:
>
>     print [ int(b)-int(a) for (a,b) in pat.findall(line)]
>
>
> --
> Hyperreals *R: http://ch3m4.org/blog
> Quarks, bits y otras criaturas infinitesimales
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/



-- 
Miguel Zamora M.
Programador en Computacion e Informatica
08-1351249
mzmprog en gmail.com
Santiago-Chile


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