Phyton - Letztes Wort im String finden?

1 Antwort

s.split(" ")[-1] == "Ich"

Erklärung:

s ist dein String - in dem Fall dein Satz

s.split(" ") trennt den String jeweils an den " " und speichert ihn in ein Array - jedes Feld beinhaltet in dem Fall ein Wort

s.split(" ")[-1] greift auf das letzte Element im so entstandenen Array zu

Isendrak  14.10.2019, 10:55

Und fürs erste Wort:

s.split(" ")[0] == "Ich"

Wobei das "splitten" anhand von Leerzeichen nicht immer funktioniert.

Da wären dann z.B. "Sonderfälle" wie "Leerzeichen nach dem Komma vergessen", Tabulatoren, Zeilenumbrüche, usw.

1
xxxcyberxxx  14.10.2019, 10:59
@Isendrak

das stimmt. in dem Fall kann man einen der folgenden zwei Ansätze nutzen:

# Ansatz 1
s.endswith(" Ich")
# Ansatz 2
print(s[-4:] == " Ich")

das könnte man noch weiter ausbauen, dass z.B. auch klein geschriebene "Ich" erkannt werden, aber das alles war am Ende nicht die Frage

0
Isendrak  14.10.2019, 11:04
@xxxcyberxxx

Ausser es geht um einen Satz wie "Hier arbeitet nur einer: Ich." ^^

In dem Fall wäre das letzte Wort "Ich", aber die letzten drei Zeichen "ch."

Um auch diese Fälle zu behandeln wäre es wohl am "einfachsten", am Ende (bzw. am Anfang) des Satzes alles zu entfernen, was nicht als Wortbestandteil definiert ist (wobei auch das nicht ganz einfach ist, wenn man z.B. auch mit japanischen, hebräischen, usw. Texten arbeitet), dann vom Ende (bzw. Anfang) aus das nächste nicht-Wort-Zeichen zu suchen und alles was dazwischen liegt für den Abgleich zu verwenden.

0
xxxcyberxxx  14.10.2019, 12:10
@Isendrak

Es wird immer irgendwelche Sonderfälle geben und jede Lösung schafft neue Probleme. Ich denke aber, dass das ganze über die Frage hinausgeht

1