Vérifier si une chaîne commence par XXXX

431

Je voudrais savoir comment vérifier si une chaîne commence par "bonjour" en Python.

Dans Bash, je fais habituellement:

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

Comment puis-je obtenir la même chose en Python?

John Marston
la source

Réponses:

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

Plus d'infos sur startswith.

RanRag
la source
108

RanRag y a déjà répondu pour votre question spécifique.

Cependant, plus généralement, ce que vous faites avec

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

est une correspondance rationnelle . Pour faire de même en Python, vous feriez:

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

De toute évidence, dans ce cas, somestring.startswith('hello')c'est mieux.

Shawabawa
la source
3
Je voulais juste ajouter que pour ce que je faisais, re.match et re.sub étaient toujours beaucoup plus lents que toute autre méthode.
Michał Leon
33

Dans le cas où vous souhaitez faire correspondre plusieurs mots à votre mot magique, vous pouvez passer les mots à faire correspondre comme un tuple:

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

startswith prend une chaîne ou un tuple de chaînes.

user1767754
la source
23

Peut également être fait de cette façon ..

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
la source