Python - Controllare se una parola è in una stringa

Sto lavorando con Python v2, e sto cercando di scoprire se si può dire se una parola è in una stringa.

Ho trovato alcune informazioni su come identificare se la parola è nella stringa - usando .find, ma c'è un modo per fare una dichiarazione IF. Vorrei avere qualcosa come il seguente:

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

Grazie per qualsiasi aiuto.

Soluzione

Cosa c'è di sbagliato in:

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

ma tenete a mente che questo corrisponde a una sequenza di caratteri, non necessariamente a una parola intera - per esempio, 'parola' in 'swordsmith' è True. Se vuoi far corrispondere solo parole intere, dovresti usare le espressioni regolari:

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
Commentari (5)

find restituisce un intero che rappresenta l'indice di dove è stato trovato l'elemento di ricerca. Se non viene trovato, restituisce -1.

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.'
Commentari (0)