Wie strip-Zeichen von der rechten Seite für jedes Wort, das in Python?
Sagen, wenn ich einen text wie
text='a!a b! c!!!'
Will ich ein Ergebnis wie dieses:
text='a!a b c'
So, wenn das Ende der einzelnen Worte ist '!', Ich will es loswerden. Wenn es mehrere '!' am Ende eines Wortes, werden Sie eliminiert.
was, wenn ich haben, um loszuwerden, Anführungszeichen(') und doppelte Anführungszeichen("), nicht nur (!)?
InformationsquelleAutor Naoko Nishimura | 2013-04-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfache Lösung für Sie, dass, nur verwenden
text.split(' ')
das wird nicht aufgeteilt auf Registerkarten, die in einem string
Dies alles hing dann an der definition eines Wortes
Ich habe noch nie gehört, ein Wort, das ein tab als ein Zeichen in dem Wort. Ich habe immer nur gehört von Registerkarten, die als Wort-Trennzeichen.
InformationsquelleAutor Joran Beasley
Als alternative zu split/strip Ansatz
nicht beibehalten whitespace genau, könnten Sie vielleicht einen regex verwenden, wie
welche Rohlinge alle Ausrufe, die nicht sofort gefolgt durch den Beginn eines Wortes.
a!!b
.Sie möchten
\!+\B(?!\S)
.InformationsquelleAutor random commenter
Diese behält alle zusätzlichen Räume können Sie in Ihren Text, die nicht passieren mit
str.split()
\Z
statt statt$
?denn aus irgendeinem Grund, den ich vergaß $, die ich es aktualisiert
InformationsquelleAutor Matt
Hier ist eine nicht-regex-non-split-basierter Ansatz:
Diese Werke zunächst mit itertools.groupby der Gruppe gemeinsam zusammenhängenden Zeichen basierend auf, ob oder nicht Sie sind whitespace:
Effektiv, das ist wie ein whitespace-Erhaltung
.split()
. Einmal haben wir diese, können wirrstrip
wie wir es immer tun würde, und dann wieder:Können wir auch weitergeben, was wir wollen:
InformationsquelleAutor DSM