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.