Проверка, начинается ли строка с XXXX

431

Я хотел бы знать, как проверить, начинается ли строка с «привет» в Python.

В Bash я обычно делаю:

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

Как мне добиться того же в Python?

Джон Марстон
источник

Ответы:

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

Больше информации о startswith.

RanRag
источник
108

RanRag уже ответил на ваш конкретный вопрос.

Тем не менее, в целом, что вы делаете с

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

является регулярным выражением матча. Чтобы сделать то же самое в Python, вы должны сделать:

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

Очевидно, в этом случае somestring.startswith('hello')лучше.

Shawabawa
источник
3
Просто хотел добавить, что для того, что я делал, re.match и re.sub всегда были значительно медленнее, чем любой другой метод.
Михал Леон
33

Если вы хотите сопоставить несколько слов с вашим волшебным словом, вы можете передать слова для сопоставления в виде кортежа:

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

startswith принимает строку или кортеж строк.

user1767754
источник
23

Так же можно сделать и так ..

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")
Асем Ядав
источник