Я пытаюсь найти способ разбить строку, основываясь только на заданных словах.
Также новый список должен соответствовать порядку слов из исходной строки (текста)
Несколько примеров ниже :
def split_str_from_words(words, text):
return ???
split_str_from_words(["hello", "world"], "helloworldhello")
split_str_from_words(["hello"], "helloworldhowareyouhello")
split_str_from_words(["hello", "how", "are", "you", "world"], "helloworldhowareyouhello")
Основываясь на 3 приведенных выше примерах, функция должна вернуть:
["hello", "world", "hello"]
["hello", "worldhowareyou", "hello"]
["hello", "world", "how", "are", "you", "hello"]
Понятия не имею, как это сделать (я пробовал с такими функциями, как split, но пока что ничего не работает, как ожидалось.
У меня есть идея, как создать свой собственный алгоритм, но мне интересно, есть ли какие-нибудь встроенные функции, которые я могу использовать для этого случая.
Заранее спасибо.
РЕДАКТИРОВАТЬ:
До сих пор я был в состоянии обнаружить все мои слова вхождение / позиция / длина слова
Это может быть очень полезно, чтобы сохранить порядок слов и фрагмента строки.
import re
def split_str_from_words(words, text):
for word in words:
positions = [m.start() for m in re.finditer(word, text)]
print(word, positions, len(positions), len(word))
return ""