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?

Odpowiedzi:



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.


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 .


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")
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.