Überprüfen, ob eine Zeichenfolge mit XXXX beginnt

427

Ich möchte wissen, wie man prüft, ob ein String in Python mit "Hallo" beginnt.

In Bash mache ich normalerweise:

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

Wie erreiche ich dasselbe in Python?

John Marston
quelle

Antworten:

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

Weitere Infos zu startswith.

RanRag
quelle
105

RanRag hat es bereits für Ihre spezielle Frage beantwortet .

Im Allgemeinen jedoch, mit was Sie tun

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

ist ein Regex- Match. Um dasselbe in Python zu tun, würden Sie Folgendes tun:

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

Offensichtlich ist in diesem Fall somestring.startswith('hello')besser.

Shawabawa
quelle
3
Ich wollte nur hinzufügen, dass re.match und re.sub für das, was ich tat, immer deutlich langsamer waren als jede andere Methode.
Michał Leon
29

Wenn Sie Ihrem Zauberwort mehrere Wörter zuordnen möchten, können Sie die passenden Wörter als Tupel übergeben:

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

Hinweis : startswithdauertstr or a tuple of str

Siehe die Dokumente .

user1767754
quelle
21

Kann auch so gemacht werden ..

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
quelle