Comprobando si una cadena comienza con XXXX

430

Me gustaría saber cómo verificar si una cadena comienza con "hola" en Python.

En Bash suelo hacer:

if [[ "$string" =~ ^hello ]]; then
 do something here
fi

¿Cómo logro lo mismo en Python?

John Marston
fuente

Respuestas:

695
aString = "hello world"
aString.startswith("hello")

Más información sobre startswith.

RanRag
fuente
108

RanRag ya lo ha respondido para su pregunta específica.

Sin embargo, más generalmente, lo que estás haciendo con

if [[ "$string" =~ ^hello ]]

Es un partido de expresiones regulares . Para hacer lo mismo en Python, harías:

import re
if re.match(r'^hello', somestring):
    # do stuff

Obviamente, en este caso, somestring.startswith('hello')es mejor.

Shawabawa
fuente
3
Solo quería agregar que para lo que estaba haciendo, re.match y re.sub siempre fue significativamente más lento que cualquier otro método.
Michał Leon
33

En caso de que desee hacer coincidir varias palabras con su palabra mágica, puede pasar las palabras para que coincidan como una tupla:

>>> magicWord = 'zzzTest'
>>> magicWord.startswith(('zzz', 'yyy', 'rrr'))
True

startswith toma una cadena o una tupla de cadenas.

usuario1767754
fuente
23

También se puede hacer de esta manera ...

regex=re.compile('^hello')

## THIS WAY YOU CAN CHECK FOR MULTIPLE STRINGS
## LIKE
## regex=re.compile('^hello|^john|^world')

if re.match(regex, somestring):
    print("Yes")
Aseem Yadav
fuente