Alle Vorkommen eines Teilstrings finden
Python bietet umfangreiche Möglichkeiten zur String-Manipulation, einschließlich der Funktionen string.find() und string.rfind( ), die das erste Vorkommen einer Teilzeichenfolge vom Anfang bzw. Ende abrufen. Diese Funktionen reichen jedoch nicht aus, wenn wir alle Vorkommen einer Teilzeichenfolge finden möchten.
Lösung: Nutzung regulärer Ausdrücke
In Ermangelung einer integrierten „Zeichenfolge“. Mit der Funktion „.find_all()“ können wir die Leistungsfähigkeit regulärer Ausdrücke nutzen:
import re text = "test test test test" # Find all occurrences of "test" matches = [m.start() for m in re.finditer('test', text)] # Print the found indexes print(matches) # [0, 5, 10, 15]
Diese Lösung iteriert über das Ergebnis von re.finditer('test', text), ein Generator, der für jedes entdeckte Vorkommen Übereinstimmungsobjekte liefert. Durch Extrahieren der start()-Eigenschaft aus jeder Übereinstimmung erhalten wir eine Liste von Indizes, die die Position der Teilzeichenfolge in der Originalzeichenfolge darstellen.
Umgang mit überlappenden Übereinstimmungen
If Überlappende Übereinstimmungen sind zulässig. Sie können durch Verwendung von Lookahead-Behauptungen im regulären Ausdruck erfasst werden:
matches = [m.start() for m in re.finditer('(?=tt)', 'ttt')] # [0, 1]
Performing Rückwärtssuchen
Um eine Rückwärtssuche ohne Überschneidungen durchzuführen, kann eine Kombination aus positivem und negativem Lookahead verwendet werden:
search = 'tt' matches = [m.start() for m in re.finditer('(?=%s)(?!.{1,%d}%s)' % (search, len(search)-1, search), 'ttt')] # [1]
Durch die Verwendung regulärer Ausdrücke können wir effektiv identifizieren und alle Vorkommen eines Teilstrings in einem Python-String abrufen.
Das obige ist der detaillierte Inhalt vonWie kann ich alle Vorkommen eines Teilstrings in einem Python-String finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!