Ü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?

Antworten:



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.


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 .


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")
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.