Я пытаюсь найти элементы (один из которых является подстрокой другого) в предложениях с регулярным выражением, но он всегда находит подстроку.Например, есть два элемента [«Герцог», «Герцог А»] и несколько предложений:
Герцог
Герцог - это фильм.
Как фильм «Герцог?»
«Герцог А.»
«Герцог А.» - это фильм.
Как фильм «Герцог А.»?
Что мне нужно после нахождения локаций:
The_Duke
The_Duke - это фильм.
Как выглядит фильм The_Duke?
The_Duke_of_A
The_Duke_of_A - это фильм.
Как фильм The_Duke_of_A?
Код, который я пробовал:
for sent in sentences:
for item in ["The Duke", "The Duke of A"]:
find = re.search(r'{0}'.format(item), sent)
if find:
sent = sent.replace(sent[find.start():find.end()], item.replace(" ", "_"))
Но я получил:
The_Duke
The_Duke - это фильм.
Как фильм The_Duke?
The_Duke ofA
The_Duke of A - это фильм.
Как выглядит фильм The_Duke of A?
Изменение позиции элементов в списке не подходит вмой случай, так как у меня большой список (более 10 000 наименований).