Seite 1 von 1

Satzzeichen am Ende eines Wortes löschen

Verfasst: Donnerstag 5. März 2015, 16:42
von kaddi789
Hallo,

ich habe folgendes Problem:

Code: Alles auswählen

satz = "Hallo wie geht es dir?"
liste = satz.split()
Ich möchte nun das Fragezeichen hinter dem Wort "dir" weghaben, wie kann ich das machen?
Ich habe schon mehrere for-Schleifen ausprobiert, aber nichts klappt wirklich..

Liebe Grüße,
Katharina

Re: Satzzeichen am Ende eines Wortes löschen

Verfasst: Donnerstag 5. März 2015, 16:46
von EyDu
Das kommt darauf an, wie kompliziert es werden soll. Der einfachste Weg wäre die rstrip-Methode auf Strings.

Code: Alles auswählen

"Spam?".rstrip("?")
Das entfernt natürlich möglicherweise mehrere Fragezeichen. Wenn es etwas komplexer wird, oder du mehrere Satzzeichen entfernen willst, dann könntest du dir mal das re-Modul anschauen.

Re: Satzzeichen am Ende eines Wortes löschen

Verfasst: Donnerstag 5. März 2015, 16:49
von kaddi789
Ah super, hat funktioniert!
Vielen Dank :)

Re: Satzzeichen am Ende eines Wortes löschen

Verfasst: Donnerstag 5. März 2015, 16:52
von kaddi789
Geht das dann auch irgendwie mit einem regulären Ausdruck, damit ich ".", "?" und "," rauskriege?

Re: Satzzeichen am Ende eines Wortes löschen

Verfasst: Donnerstag 5. März 2015, 16:58
von kaddi789
Ah habs schon selber hinbekommen, vielen Dank für die Hilfe! :D

Re: Satzzeichen am Ende eines Wortes löschen

Verfasst: Donnerstag 5. März 2015, 16:59
von mutetella
@kaddi789
Ja, das geht mit re.sub:

Code: Alles auswählen

>>> import re
>>> re.sub(r'[\.,\?]', '', 'spam.spam,spam?')
'spamspamspam'
mutetella

Re: Satzzeichen am Ende eines Wortes löschen

Verfasst: Donnerstag 5. März 2015, 17:04
von kaddi789
Ok, danke :)

Re: Satzzeichen am Ende eines Wortes löschen

Verfasst: Donnerstag 5. März 2015, 17:07
von mutetella
EDIT: Wenn es Dir nur um Zeichen am Ende des Strings geht, dann kannst Du noch das EOL flag (weiß nicht, ob das wirklich so heißt...?) verwenden:

Code: Alles auswählen

>>> re.sub(r'[\.,\?]$', '', 'spam.spam,spam?')
'spam.spam,spam'
mutetella

Re: Satzzeichen am Ende eines Wortes löschen

Verfasst: Donnerstag 5. März 2015, 17:26
von Sirius3
@kaddi789: bei mehreren Zeichen braucht man auch keinen regulären Ausdruck, sondern rstrip reicht:

Code: Alles auswählen

"Spam!?".rstrip(".?!")