Usar regex é uma solução, mas é muito complicado para esse caso.
Você pode simplesmente dividir o texto em uma lista de palavras. Use o método split ( separator , num ) para isso. Retorna uma lista de todas as palavras da string, usando o separador como separador. Se o separador não for especificado, ele será dividido em todos os espaços em branco (opcionalmente, você pode limitar o número de divisões para num ).
list_of_words = mystring.split()
if word in list_of_words:
print 'success'
Isso não funcionará para string com vírgulas etc. Por exemplo:
mystring = "One,two and three"
# will split into ["One,two", "and", "three"]
Se você também deseja dividir todas as vírgulas, etc., use o argumento separador como este:
# whitespace_chars = " \t\n\r\f" - space, tab, newline, return, formfeed
list_of_words = mystring.split( \t\n\r\f,.;!?'\"()")
if word in list_of_words:
print 'success'