Satzzeichen am Ende eines Wortes löschen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
kaddi789
User
Beiträge: 11
Registriert: Sonntag 22. Februar 2015, 14:24
Wohnort: Osnabrück / Bielefeld

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
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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.
Das Leben ist wie ein Tennisball.
Benutzeravatar
kaddi789
User
Beiträge: 11
Registriert: Sonntag 22. Februar 2015, 14:24
Wohnort: Osnabrück / Bielefeld

Ah super, hat funktioniert!
Vielen Dank :)
Benutzeravatar
kaddi789
User
Beiträge: 11
Registriert: Sonntag 22. Februar 2015, 14:24
Wohnort: Osnabrück / Bielefeld

Geht das dann auch irgendwie mit einem regulären Ausdruck, damit ich ".", "?" und "," rauskriege?
Benutzeravatar
kaddi789
User
Beiträge: 11
Registriert: Sonntag 22. Februar 2015, 14:24
Wohnort: Osnabrück / Bielefeld

Ah habs schon selber hinbekommen, vielen Dank für die Hilfe! :D
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

@kaddi789
Ja, das geht mit re.sub:

Code: Alles auswählen

>>> import re
>>> re.sub(r'[\.,\?]', '', 'spam.spam,spam?')
'spamspamspam'
mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
kaddi789
User
Beiträge: 11
Registriert: Sonntag 22. Februar 2015, 14:24
Wohnort: Osnabrück / Bielefeld

Ok, danke :)
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

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
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Sirius3
User
Beiträge: 18335
Registriert: Sonntag 21. Oktober 2012, 17:20

@kaddi789: bei mehreren Zeichen braucht man auch keinen regulären Ausdruck, sondern rstrip reicht:

Code: Alles auswählen

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