Je cherche un moyen d'obtenir toutes les lettres dans une chaîne avant a: mais je ne sais pas par où commencer. Est-ce que j'utiliserais regex? Si c'est le cas, comment?
string = "Username: How are you today?"
Quelqu'un peut-il me montrer un exemple de ce que je pourrais faire?
s1.partition(':')[0]
Utilisation
index
:L'index vous donnera la position de
:
dans la chaîne, puis vous pourrez la découper.Si vous souhaitez utiliser regex:
match
correspond au début de la chaîne.vous pouvez aussi utiliser
itertools.takewhile
la source
Tu n'as pas besoin
regex
de çaVous pouvez utiliser la
split
méthode pour diviser la chaîne sur le':'
caractèreEt découpez l'élément
[0]
pour obtenir la première partie de la chaînela source
J'ai comparé ces différentes techniques sous Python 3.7.0 (IPython).
TLDR
c
est connu): regex pré-compilée.s.partition(c)[0]
.c
peut ne pas être danss
): partition, split.Code
Résultats
la source
s.index(c)
déclenche une ValueError lorsqu'ilc
n'est pas danss
. Donc, je considère que c'est sûr quand je suis sûr que la chaîne à partitionner contient le séparateur, autrement dangereux.partition () peut être mieux que split () à cette fin car il a les meilleurs résultats prévisibles pour les situations où vous n'avez pas de délimiteur ou plus de délimiteurs.
la source
partition
etsplit
fonctionneront de manière transparente avec une chaîne vide ou sans délimiteurs. Il est à noter queword[:word.index(':')]
cela apparaîtra dans ces deux cas.