Estou procurando uma maneira de obter todas as letras de uma string antes de a: mas não tenho ideia de por onde começar. Eu usaria regex? Se sim, como?
string = "Username: How are you today?"
Alguém pode me mostrar um exemplo do que eu poderia fazer?
s1.partition(':')[0]
Usando
index
:O índice dará a você a posição da
:
string, então você pode cortá-la.Se você deseja usar regex:
match
corresponde desde o início da string.você também pode usar
itertools.takewhile
fonte
Você não precisa
regex
dissoVocê pode usar o
split
método para dividir a string no':'
caractereE corte o elemento
[0]
para obter a primeira parte da stringfonte
Eu comparei essas várias técnicas em Python 3.7.0 (IPython).
TLDR
c
é conhecido): regex pré-compilado.s.partition(c)[0]
.c
pode não estar ems
): partição, divisão.Código
Resultados
fonte
s.index(c)
gera um ValueError quandoc
não está ems
. Portanto, considero seguro quando tenho certeza de que a string a ser particionada contém o separador, caso contrário, inseguro.partition () pode ser melhor do que split () para esse propósito, pois tem os melhores resultados previsíveis para situações em que você não tem delimitador ou mais delimitadores.
fonte
partition
esplit
funcionarão de forma transparente com uma string vazia ou sem delimitadores. É importante notar queword[:word.index(':')]
aparecerá em ambos os casos.