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


431

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

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

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

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

Ответы:



108

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

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

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

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

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

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


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

33

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

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

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


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")
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.