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?

Réponses:



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.


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.


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")
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.