Sprawdzanie, czy ciąg zaczyna się od XXXX

427

Chciałbym wiedzieć, jak sprawdzić, czy ciąg znaków zaczyna się od „hello” w Pythonie.

W Bash zwykle robię:

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

Jak mogę osiągnąć to samo w Pythonie?

John Marston
źródło

Odpowiedzi:

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

Więcej informacji o startswith.

RanRag
źródło
105

RanRag już odpowiedział na twoje konkretne pytanie.

Jednak bardziej ogólnie, co robisz

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

jest dopasowaniem wyrażenia regularnego . Aby zrobić to samo w Pythonie, zrobiłbyś:

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

Oczywiście w tym przypadku somestring.startswith('hello')jest lepiej.

Shawabawa
źródło
3
Chciałem tylko dodać, że w przypadku tego, co robiłem, re.match i re.sub zawsze były znacznie wolniejsze niż jakakolwiek inna metoda.
Michał Leon
29

Jeśli chcesz dopasować wiele słów do swojego magicznego słowa, możesz przekazać te słowa jako krotkę:

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

Uwaga : startswithtrwastr or a tuple of str

Zobacz dokumenty .

użytkownik1767754
źródło
21

Można to również zrobić w ten sposób ..

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
źródło