Seite 1 von 1

Wort suchen was exakt auf das gesuchte passt

Verfasst: Dienstag 3. Februar 2026, 20:30
von egon11
Hallo, ich möchte ein Wort suchen, was auch direkt ins Suchmuster passt.
Wenn ich "Auto" suche möchte ich nicht "Automaten" als Treffer bekommen.

Ich habe folgendes mal getestet:

Code: Alles auswählen

import re


my_liste = ["Auto", "Autobus", "Automaten"]

for i in my_liste:
    if re.search(r"Auto", i):
        print("Auto: " + i)
    elif re.search(r"Automaten", i):
        print("Automaten: " + 1)

Im "re" - Modul habe ich dazu nichts brauchbares gefunden -- oder überlesen--
Vielleicht könnt ihr mir eine kleine Hilfe geben wie man so etwas löst.

Gruß

Re: Wort suchen was exakt auf das gesuchte passt

Verfasst: Dienstag 3. Februar 2026, 21:10
von snafu
Du suchst re.match(), nicht re.search().

Noch einfacher wäre ein direkter Vergleich:

Code: Alles auswählen

for word in words:
    if word == "Auto":
        # ...
Oder mit einer Menge:

Code: Alles auswählen

words = set(["Auto", "Autobus", "Automaten"])
print("Auto" in words)

Re: Wort suchen was exakt auf das gesuchte passt

Verfasst: Dienstag 3. Februar 2026, 21:13
von __blackjack__
@egon11: Warum denn dann `re` und nicht einfach `==`? Falls das Wort *in* einem Listenelement vorkommen können soll, dann ist das Beispiel schlecht gewählt, denn dafür reicht es ja nur ein Beispiel ohne die Liste zu zeigen und es sollte dann auch mehr als nur das Wort in dem zu durchsuchenden Text stehen. In dem Fall suchst Du wahrscheinlich „word boundary“, also r"\b" im regulären Ausdruck.

Und bitte nicht `my_liste` oder gar `i` für etwas das keine ganze Zahl ist.

Code: Alles auswählen

worte = ["Auto", "Autobus", "Automaten"]
for wort in worte:
    if wort in {"Auto", "Automaten"}:
        print(f"{wort}: {wort}")

Re: Wort suchen was exakt auf das gesuchte passt

Verfasst: Dienstag 3. Februar 2026, 21:23
von snafu
Außerdem sei der allseits bekannte Tipp erwähnt, einmal das Python Tutorial (Original | Übersetzung) durchzuarbeiten. Das hilft wirklich, wenn man ganz neu dabei ist.

Re: Wort suchen was exakt auf das gesuchte passt

Verfasst: Dienstag 3. Februar 2026, 22:05
von egon11
Noch einfacher wäre ein direkter Vergleich:

Code: Alles auswählen

for word in words:
    if word == "Auto":
        # ...
Ich habe mich falsch ausgedrückt bzw mir ist ein Fehler bei der Beschreibung aufgefallen.
Also nochmal, ich lese eine Datei ein und speichere jede Zeile in eine Liste.
Danach iteriere ich die Liste und es sollen diese im #1 genannten Wörter gesucht werden.
Also in welcher Zeile kommt das Wort "Auto", das Wort "Autobus" und in welcher das Wort "Automat" vor.
Daher das ich die Sätze nicht kenne, kann ich den Vergleich mit "==" nicht bringen.
re.match sucht nur am Anfang.
Eine Variante wäre, jede Zeile nochmal bei jeden Leerzeichen zu splitten, um es so zu suchen (was ich hinbekommen hab).
Aber geht es auch einfacher?

Re: Wort suchen was exakt auf das gesuchte passt

Verfasst: Mittwoch 4. Februar 2026, 00:08
von __blackjack__
@egon11: Was heisst einfacher? Und ist das an Leerzeichen aufteilen nicht _zu_ einfach, denn so wird man bei "Am Ende dieses Satzes steht ein Auto." das Auto nicht finden, weil "Auto" ≠ "Auto."

Deswegen erwähnte ich ja „word boundary“ bei regulären Ausdrücken. Allerdings würde das dann immer noch nicht helfen bei Sätzen wie "Bei diesem Glücksspielanbieter kann man Wetten auf Auto- und Pferderennen setzen." Da würde dann Auto erkannt, obwohl das eigentlich für "Autorennen" steht. Ähnlich falls beispielsweise "Automat" mit einem Bindestrich über zwei Zeilen getrennt wurde als "… Auto-", "mat …". Hier würde fälschlich "Auto" erkannt, "Automat" aber nicht.

Natürliche Sprache zu verarbeiten ist nicht so einfach.