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

Wie kann ich alle Vorkommen eines Teilstrings in Python finden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-12 21:58:10929Durchsuche

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

Alle Vorkommen eines Teilstrings in Python finden

In Python können Sie string.find() und string.rfind() verwenden Methoden zum Abrufen des Index eines Teilstrings innerhalb eines größeren Strings. Es gibt jedoch keine integrierte Funktion, die speziell dafür entwickelt wurde, alle Vorkommen einer Teilzeichenfolge zurückzugeben.

Verwendung regulärer Ausdrücke

Ein leistungsfähigerer Ansatz zum Auffinden mehrerer Teilzeichenfolgen Vorkommen besteht darin, reguläre Ausdrücke zu verwenden:

import re

# Sample string
string = "test test test test"

# Find all occurrences of "test"
matches = [m.start() for m in re.finditer('test', string)]
print(matches)  # Output: [0, 5, 10, 15]

re.finditer generiert einen Generator, der einzelne Übereinstimmungsobjekte liefert. Jedes Übereinstimmungsobjekt stellt den Startindex einer übereinstimmenden Teilzeichenfolge bereit.

Berücksichtigung überlappender Übereinstimmungen

Standardmäßig sucht re.finditer nach nicht überlappenden Übereinstimmungen. Um überlappende Übereinstimmungen zu finden, verwenden Sie einen positiven Lookahead:

matches = [m.start() for m in re.finditer('(?=tt)', 'ttt')]
print(matches)  # Output: [0, 1]

Der Ausdruck (?=tt) bestätigt, dass die Teilzeichenfolge „tt“ an der aktuellen Position erscheint, sie aber nicht verbraucht.

Umgekehrte Allessuche ohne Überlappungen

Um eine umgekehrte Allessuche ohne überlappende Übereinstimmungen durchzuführen, kombinieren Sie Positiv und Negativ Lookahead:

search = 'tt'
matches = [m.start() for m in re.finditer('(?=%s)(?!.{1,%d}%s)' % (search, len(search)-1, search), 'ttt')]
print(matches)  # Output: [1]

Dieser Ausdruck stellt sicher, dass „tt“ unmittelbar nach dem Cursor erscheint, jedoch nicht innerhalb eines bestimmten Lookback-Bereichs (len(search)-1) in umgekehrter Richtung.

Das obige ist der detaillierte Inhalt vonWie kann ich alle Vorkommen eines Teilstrings in Python 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