2012-01-10 24 views
275

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

En Bash normalmente hago:

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

¿Cómo puedo lograr lo mismo en Python?

+13

¿Has probado mirar la documentación? – Marcin

+8

@Marcin de acuerdo. Además, el título casi pasa por la sintaxis correcta para hacerlo :-) Simplemente elimine algunos espacios y agregue unos pocos paréntesis y termine con dos puntos ... 'if aString.startswith (XXXX):' – plundra

Respuesta

452
aString = "hello world" 
aString.startswith("hello") 
68

RanRag has already answered para su pregunta específica.

Sin embargo, en términos más generales, lo que está haciendo con

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

es un partidoexpresiones regulares. Para hacer lo mismo en Python, que haría:

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

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

+0

Solo quería agregar eso por lo que Estaba haciendo, re.match y re.sub siempre fueron significativamente más lentos que cualquier otro método. –

12

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") 
4

En caso de que desee para que coincida con múltiples palabras para la palabra mágica que puede pasar de las palabras a juego como una tupla:

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

Ver el docs.

Cuestiones relacionadas