Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich alle Vorkommen eines Teilstrings in einem Python-String finden?

Wie kann ich alle Vorkommen eines Teilstrings in einem Python-String finden?

Linda Hamilton
Linda HamiltonOriginal
2024-12-22 00:53:38888Durchsuche

How Can I Find All Occurrences of a Substring in a Python String?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn