Comprobar si una palabra está en una cadena en Python

Resuelto The Woo asked hace 13 años • 15 respuestas

Estoy trabajando con Python y estoy tratando de averiguar si puedes saber si una palabra está en una cadena.

Encontré información sobre cómo identificar si la palabra está en la cadena usando .find, pero ¿hay alguna manera de hacer una ifdeclaración? Me gustaría tener algo como lo siguiente:

if string.find(word):
    print("success")
The Woo avatar Mar 16 '11 08:03 The Woo
Aceptado

Lo que está mal con:

if word in mystring: 
   print('success')
fabmilo avatar Mar 16 '2011 01:03 fabmilo
if 'seek' in 'those who seek shall find':
    print('Success!')

pero tenga en cuenta que esto coincide con una secuencia de caracteres, no necesariamente con una palabra completa; por ejemplo, 'word' in 'swordsmith'es Verdadero. Si sólo desea hacer coincidir palabras completas, debe utilizar expresiones regulares:

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')    # -> <match object>
findWholeWord('word')('swordsmith')                   # -> None
Hugh Bothwell avatar Mar 16 '2011 01:03 Hugh Bothwell