Найти подстроку в строке, но только целые слова?

Какой элегантный способ искать строку в другой строке в Python, но только если подстрока находится внутри целых слов, а не части слова?

Возможно, пример продемонстрирует, что я имею в виду:

string1 = "ADDLESHAW GODDARD"
string2 = "ADDLESHAW GODDARD LLP"
assert string_found(string1, string2)  # this is True
string1 = "ADVANCE"
string2 = "ADVANCED BUSINESS EQUIPMENT LTD"
assert not string_found(string1, string2)  # this should be False

Как мне лучше всего написать функцию с именем string_found, которая будет делать то, что мне нужно? Я подумал, что, возможно, я смогу обмануть его чем-то вроде этого:

def string_found(string1, string2):
   if string2.find(string1 + " "):
      return True
   return False

Но это не выглядит очень элегантным, а также не соответствовало бы строке1, если бы она была в конце строки2. Может мне нужно регулярное выражение? (argh regex fear)

20
задан AP257 13 November 2010 в 07:32
поделиться