Ich suche nach einer Möglichkeit, alle Buchstaben in einer Zeichenfolge vor a: zu erhalten, aber ich habe keine Ahnung, wo ich anfangen soll. Würde ich Regex verwenden? Wenn das so ist, wie?
string = "Username: How are you today?"
Kann mir jemand ein Beispiel zeigen, was ich tun könnte?
s1.partition(':')[0]
Verwenden von
index
:Der Index gibt Ihnen die Position
:
in der Zeichenfolge an, dann können Sie sie in Scheiben schneiden.Wenn Sie Regex verwenden möchten:
match
stimmt mit dem Anfang der Zeichenfolge überein.Sie können auch verwenden
itertools.takewhile
quelle
Sie brauchen nicht
regex
für dieseMit dieser
split
Methode können Sie die Zeichenfolge für das':'
Zeichen aufteilenUnd schneiden Sie das Element aus
[0]
, um den ersten Teil der Zeichenfolge zu erhaltenquelle
Ich habe diese verschiedenen Techniken unter Python 3.7.0 (IPython) verglichen.
TLDR
c
bekannt ist): vorkompilierter Regex.s.partition(c)[0]
.c
nicht ins
): Partition, aufgeteilt.Code
Ergebnisse
quelle
s.index(c)
löst einen ValueError aus, wennc
nicht ins
. Daher halte ich es für sicher, wenn ich sicher bin, dass die zu partitionierende Zeichenfolge das Trennzeichen enthält, ansonsten unsicher.partition () ist zu diesem Zweck möglicherweise besser als split (), da es die besser vorhersehbaren Ergebnisse für Situationen liefert, in denen Sie kein Trennzeichen oder mehr Trennzeichen haben.
quelle
partition
undsplit
arbeiten transparent mit einer leeren Zeichenfolge oder ohne Trennzeichen. Es ist erwähnenswert, dass diesword[:word.index(':')]
in beiden Fällen der Fall sein wird.