Método finditer del módulo re
El método finditer del módulo re
devuelve un iterador de todas las coincidencias con la expresión regular
en una cadena. En el primer parámetro del método especificamos
la expresión regular. En el segundo parámetro establecemos
la cadena en la que buscamos la expresión regular. En el tercer
parámetro opcional se pueden establecer banderas.
El método verifica todas las coincidencias, buscándolas
de izquierda a derecha.
Sintaxis
import re
re.finditer(expresión_regular, cadena, [banderas])
Ejemplo
Encontremos todas las subcadenas con dígitos en nuestra cadena:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
print(res)
Resultado de la ejecución del código:
<callable_iterator object at 0x000002AA891300A0>
Ejemplo
Y ahora declaremos la variable res,
cuyo valor será el objeto obtenido
por nosotros en el ejemplo anterior. Luego iteremos
sobre él con un ciclo:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('\d+', txt)
for el in res:
print(el)
Después de ejecutar el código obtendremos dos objetos Match object:
<re.Match object; span=(5, 8), match='123'>
<re.Match object; span=(14, 17), match='456'>
Estos objetos contienen información sobre todas las coincidencias con la expresión regular en forma de tupla. Podemos extraer las coincidencias por índice:
for el in res:
print(el[0])
Resultado de la ejecución del código:
'123'
'456'
Ejemplo
Para mayor claridad, usemos grupos de captura al buscar coincidencias. Y al iterar sobre los objetos en el ciclo, mostremos la primera coincidencia (se considerará el grupo cero), así como sus elementos, a su vez distribuidos en grupos de captura:
txt = 'aaaa 123 bbbb 456'
res = re.finditer('(\d)(\d)', txt)
for el in res:
print(el[0], el[1], el[2])
Después de ejecutar el código obtendremos el grupo cero, es decir, toda la subcadena, así como el primer y segundo carácter de esta subcadena:
'12' '1' '2'
'45' '4' '5'
Véase también
-
método
findalldel módulore,
que devuelve una lista de todas las coincidencias en la cadena -
método
searchdel módulore,
que busca la primera coincidencia con la expresión regular en la cadena -
método
matchdel módulore,
que busca coincidencia con la expresión regular al inicio de la cadena -
método
fullmatchdel módulore,
que busca todas las coincidencias con la expresión regular en la cadena -
objeto
Match objectdel módulore,
que contiene información sobre las coincidencias con la expresión regular -
método
splitdel módulore,
que divide una cadena en una lista según el separador especificado