Python - Prüfen, ob ein Wort in einer Zeichenkette enthalten ist

I'm arbeiten mit Python v2, und I'm versuchen, herauszufinden, wenn Sie sagen können, wenn ein Wort in einer Zeichenfolge ist.

Ich habe einige Informationen darüber gefunden, wie man feststellen kann, ob das Wort in der Zeichenkette ist - mit .find, aber gibt es eine Möglichkeit, eine IF-Anweisung zu machen. Ich würde gerne etwas wie das Folgende haben:

if string.find(word):
    print 'success'

Danke für jede Hilfe.

Lösung

Was ist falsch an:

if word in mystring: 
   print 'success'
Kommentare (5)
if 'seek' in 'those who seek shall find':
    print('Success!')

aber bedenken Sie, dass dies auf eine Folge von Zeichen passt, nicht unbedingt auf ein ganzes Wort - zum Beispiel ist 'Wort' in 'Schwertschmied' Wahr. Wenn Sie nur ganze Wörter abgleichen wollen, sollten Sie reguläre Ausdrücke verwenden:

import re

def findWholeWord(w):
    return re.compile(r'\b({0})\b'.format(w), flags=re.IGNORECASE).search

findWholeWord('seek')('those who seek shall find')    # -> 
findWholeWord('word')('swordsmith')                   # -> None
Kommentare (5)

find gibt eine ganze Zahl zurück, die den Index der Stelle angibt, an der das gesuchte Element gefunden wurde. Wenn es nicht gefunden wird, wird -1 zurückgegeben.

haystack = 'asdf'

haystack.find('a') # result: 0
haystack.find('s') # result: 1
haystack.find('g') # result: -1

if haystack.find(needle) >= 0:
  print 'Needle found.'
else:
  print 'Needle not found.'
Kommentare (0)