Python re.finditer()-Methode

Python re 模块Python-re-Modul


re.finditer()ist eine PythonreModulfunktion zumiterativen Finden aller Übereinstimmungen.

Es gibt einen Iterator zurück, bei dem jedes Element ein Match-Objekt ist, sodass Sie die Übereinstimmungsergebnisse einzeln verarbeiten können.

Begriffsdefinition: find iterEs bedeutet "Find-Iterator".


Grundlegende Syntax und Parameter

Syntaxformat

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

Parameterbeschreibung

  • pattern: Reguläres Ausdrucksmuster
  • string: Die zu durchsuchende Zeichenkette
  • flags: Optional, Flags für reguläre Ausdrücke

Funktionsbeschreibung

  • Rückgabewert: Gibt einen Iterator zurück, wobei jedes Element ein Match-Objekt ist.
  • Eigenschaften: Geeignet für die Verarbeitung großer Mengen von Übereinstimmungsergebnissen, wodurch Speicher gespart wird.

Beispiele

Beispiel 1: Grundlegende Verwendung

Beispiel

import re

text = "3 Äpfel, 5 Orangen, 8 Bananen"

# Iterieren, um alle Zahlen zu finden
for match in re.finditer(r'\d+', text):
    print(f"Gefunden: {match.group()} Position: {match.start()}-{match.end()}")

Erwartete Ausgabe:

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

Beispiel 2: Verarbeitung einer E-Mail-Liste

Beispiel

import re

text = "Kontaktieren Sie [email protected] oder [email protected] für Hilfe"

# Finde und verarbeite jede E-Mail
for match in re.finditer(r'(\w+)@(\w+\.\w+)', text):
    print(f"Vollständig: {match.group()}")
    print(f" Benutzername: {match.group(1)}")
    print(f" Domain: {match.group(2)}")
    print(f" Position: {match.start()}-{match.end()}")

Erwartete Ausgabe:

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

Beispiel 3: Vergleich mit re.findall()

Beispiel

import re

text = "a1b2c3d4"

# findall gibt eine Liste von Zeichenketten zurück
print("findall:", re.findall(r'\d', text))

# finditer gibt einen Iterator zurück
print("finditer:", [m.group() for m in re.finditer(r'\d', text)])

Erwartete Ausgabe:

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

Python re 模块Python-re-Modul

Andere Erweiterungen