Método Python re.finditer()

Python re 模块Módulo re de Python


re.finditer()es Pythonreen el módulo utilizado parabuscar iterativamente todas las coincidenciasla función.

Devuelve un iterador, cada elemento es un objeto match, lo que permite procesar los resultados de coincidencia uno por uno.

Definición de la palabra: find iterSignifica 'iterador de búsqueda'.


Sintaxis básica y parámetros

Formato de sintaxis

re.finditer(pattern, string, flags=0)

Descripción de parámetros

  • pattern: patrón de expresión regular
  • string: la cadena a buscar
  • flags: opcional, banderas de expresión regular

Descripción de la función

  • Valor de retorno: devuelve un iterador (iterator), cada elemento es un objeto match.
  • Características: adecuado para manejar una gran cantidad de resultados de coincidencia, ahorra memoria.

Ejemplos

Ejemplo 1: Uso básico

Ejemplo

import re

text = 3 manzanas, 5 naranjas, 8 plátanos

# Buscar iterativamente todos los números
for match in re.finditer(r'\d+', text):
    print(fEncontrado: {match.group()} Posición: {match.start()}-{match.end()})

Resultado esperado:

找到: 3 位置: 0-1
找到: 5 位置: 4-5
找到: 8 位置: 8-9

Ejemplo 2: Procesar lista de correos electrónicos

Ejemplo

import re

text = Contacta con [email protected] o [email protected] para obtener ayuda

# Buscar y procesar cada correo electrónico
for match in re.finditer(r'(\w+)@(\w+\.\w+)', text):
    print(fCompleto: {match.group()})
    print(fUsuario: {match.group(1)})
    print(fDominio: {match.group(2)})
    print(fPosición: {match.start()}-{match.end()})

Resultado esperado:

完整: [email protected]
  用户名: test
  域名: example.com
  位置: 2-16
完整: [email protected]
  用户名: admin
  域名: test.org
  位置: 17-30

Ejemplo 3: Comparación con re.findall()

Ejemplo

import re

text = "a1b2c3d4"

# findall devuelve una lista de cadenas
print("findall:", re.findall(r'\d', text))

# finditer devuelve un iterador
print("finditer:", [m.group() for m in re.finditer(r'\d', text)])

Resultado esperado:

findall: ['1', '2', '3', '4']
finditer: ['1', '2', '3', '4']

Python re 模块Módulo re de Python

Otras extensiones