Bir dizenin XXXX ile başlayıp başlamadığını kontrol etme


427

Ben bir dize Python "merhaba" ile başlar olup olmadığını kontrol etmek istiyorum.

Bash'te genellikle şunu yaparım:

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

Aynı şeyi Python'da nasıl başarabilirim?

Yanıtlar:



106

RanRag özel sorunuz için zaten cevap verdi .

Bununla birlikte, daha genel olarak, ne yaptığınız

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

bir normal ifade eşleşmesi. Aynı şeyi Python'da yapmak için şunları yaparsınız:

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

Açıkçası, bu durumda, somestring.startswith('hello')daha iyidir.


3
Sadece yaptığım şey için eklemek istedim, re.match ve re.sub her zaman diğer yöntemlerden çok daha yavaştı.
Michał Leon

30

Sihirli kelimenizle birden fazla kelimeyi eşleştirmek istiyorsanız , kelimeleri bir demet olarak eşleştirebilirsiniz:

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

Not : startswithalırstr or a tuple of str

Belgelere bakın .


22

Bu şekilde de yapılabilir ..

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")
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.