[pyar] Busqueda de palabra en un texto

Gabriel Acosta acostadariogabriel en gmail.com
Dom Mar 1 14:31:33 ART 2015


Muchas gracias David, me sirvió !
Un abrazo.

El 28/2/15, David Arch <daviddanielarch en gmail.com> escribió:
> En la respuesta anterior, solamente te da el offset relativo a la linea,
> para obtener un offset absoluto podes hacer algo asi:
>
> def ffind_with_linesl(text, word):
>     offset = 0
>     text_lines = text.splitlines()
>     for line_number, line in enumerate(text_lines):
>         if line_number != 0:
>             offset = offset + len(text_lines[line_number-1]) + 1
>         for index, end in ffind(line,word):
>             yield index + offset, end + offset, line_number
>
> El 28 de febrero de 2015, 17:06, David Arch <daviddanielarch en gmail.com>
> escribió:
>
>> Podrias reusar la funcion inicial y hacer algo asi:
>>
>> def ffind_with_lines(text, word):
>>     for line_number, line in enumerate(text.splitlines()):
>>         for index, end in ffind(line,word):
>>             yield index, end, line_number
>>
>> El 28 de febrero de 2015, 12:11, Gabriel Acosta <
>> acostadariogabriel en gmail.com> escribió:
>>
>> Buen día lista!
>>> Tengo este código:
>>>
>>> def ffind(text, word):
>>> i = 0
>>>     while True:
>>>         i = text.find(word, i)
>>>         if i == -1:
>>>             return
>>>         end = i + len(word)
>>>         yield i, end
>>>         i += len(word)
>>>
>>> Tengo este generador que pasándole un texto y una palabra me devuelve
>>> el índice (inicio) e índice(final) de esa palabra en el texto, pero
>>> tambien necesito el número de línea en la que se encuentra, luego
>>> intenté esto:
>>>
>>> def ffind(text, word):
>>> index = 0
>>>     line = 0
>>>     for l in text.splitlines():
>>>         index = l.find(word)
>>>         if index != -1:
>>>             end = index + len(word)
>>>             yield index, end, line
>>>         line += 1
>>>
>>> Me soluciona el problema del número de línea pero solo me busca una
>>> ocurrencia por línea,  alguna solución a esto?.
>>>
>>> Un abrazo!
>>> --
>>> Gabo
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>>
>> --
>> Saludos.
>> David.
>>
>
>
>
> --
> Saludos.
> David.
>


-- 
Gabo


More information about the pyar mailing list