HOWTO · Python
Überprüfen Sie, ob eine Zeichenkette Word in Python enthält
Die if/in-Anweisung kann verwendet werden, um zu überprüfen, ob sich ein angegebenes Wort in einer String-Variablen befindet oder nicht in Python.
Auf dieser Seite
Um zu prüfen, ob Text in einem Python-String vorkommt, verwenden Sie den Operator in. Er gibt einen booleschen Wert zurück und unterscheidet zwischen Groß- und Kleinschreibung.
Mit der if/in-Anweisung in Python prüfen, ob ein String ein Wort enthält
Für eine einfache Prüfung auf eine Teilzeichenfolge verwenden Sie in direkt in einer if-Bedingung. Der Operator gibt einen booleschen Wert zurück und unterscheidet zwischen Groß- und Kleinschreibung.
text = "This contains a word"
if "word" in text:
print("Found")
else:
print("Not Found")
Der Operator sucht an beliebiger Stelle im String nach einer Zeichenfolge. Eine Übereinstimmung mit einem vollständigen Wort ist nicht erforderlich: "is" in "This" ist wahr, weil diese Zeichen am Ende von This vorkommen. Wenn Sie gezielt ein eigenständiges Wort suchen, kann dieses Verhalten zu einem falschen Treffer führen.
Wenn Wörter ausschließlich durch gewöhnliche Leerzeichen getrennt sind, können Sie als einfache Behelfslösung an beiden Enden ein Leerzeichen ergänzen und nach dem so eingerahmten Begriff suchen: " is " in (" " + text + " "). Satzzeichen, Tabulatoren, Zeilenumbrüche und andere Trennzeichen werden damit nicht zuverlässig behandelt. Wenn solche Trennzeichen eine Rolle spielen, verwenden Sie ein Muster mit Wortgrenzen oder zerlegen Sie den Text in einzelne Wörter.
Mit der find()-Methode in Python prüfen, ob ein String ein Wort enthält
find() sucht ebenfalls nach einer Teilzeichenfolge und gibt den Index ihres ersten Vorkommens zurück. Wird der gesuchte Text nicht gefunden, gibt die Methode -1 zurück. Vergleichen Sie das Ergebnis ausdrücklich mit -1; verwenden Sie den Index selbst nicht als Bedingung. Der Index 0 wird als falsch ausgewertet, während -1 als wahr gilt.
text = "word appears here"
position = text.find("word")
if position != -1:
print("Found at index", position)
else:
print("Not Found")
So wird auch ein Treffer am Anfang des Strings korrekt erkannt. Wie in sucht find() nach Teilzeichenfolgen und nicht nach vollständigen Wörtern. Verwenden Sie die Methode, wenn Sie neben der Prüfung auf ein Vorkommen auch dessen Position benötigen.
Mit regulären Ausdrücken in Python prüfen, ob ein String ein Wort enthält
Verwenden Sie re.search(), wenn die Suche ein Muster benötigt, zum Beispiel um einen Begriff zu finden, der von Wortgrenzen umgeben ist. In einem regulären Ausdruck kennzeichnet \b den Übergang zwischen einem Wortzeichen und einem Nicht-Wortzeichen.
import re
text = "This contains a word."
if re.search(r"\bword\b", text):
print("Found")
else:
print("Not Found")
Das rohe Muster r"\bword\b" findet word nach den \w-Regeln von Python als eigenständiges Regex-Wort. Diese Regeln entsprechen möglicherweise nicht der Wortdefinition jeder Anwendung, insbesondere bei spezieller Tokenisierung oder sprachspezifischen Wortgrenzen. Für gewöhnliche Prüfungen auf Teilzeichenfolgen ist in einfacher.
Mit der index()-Methode und Ausnahmebehandlung in Python prüfen, ob ein String ein Wort enthält
index() gibt wie find() den Index des ersten Vorkommens zurück. Ist die Teilzeichenfolge nicht vorhanden, löst die Methode jedoch ValueError aus, statt -1 zurückzugeben. Behandeln Sie diese Ausnahme, wenn ein fehlender Treffer möglich ist und der Index bei einem Treffer nützlich wäre.
text = "This contains a word"
try:
position = text.index("word")
print("Found at index", position)
except ValueError:
print("Not Found")
Der try-Block behandelt eine erfolgreiche Suche; der except ValueError-Block behandelt eine fehlende Teilzeichenfolge. Wenn Sie nur einen booleschen Wert benötigen, drückt in diese Absicht direkter aus.
Fazit
Verwenden Sie in, um gewöhnliche Teilzeichenfolgen zu finden. Beachten Sie dabei, dass der Operator zwischen Groß- und Kleinschreibung unterscheidet und Zeichen innerhalb eines längeren Wortes finden kann. Nutzen Sie ein Muster mit re.search(), das Wortgrenzen berücksichtigt, wenn dessen Wortdefinition zum Text passt. Wählen Sie find(), wenn Sie einen Index benötigen und ein fehlender Treffer durch -1 angezeigt werden soll, oder index(), wenn Sie einen fehlenden Treffer über ValueError behandeln möchten.