Как разбить строку на две части в Django?

У меня есть сайт со статьями на Djangoю В статьях на этом сайте попадаются HTML теги, и я хочу, чтобы дойдя до первого тега <p>, к примеру, джанго разбивал строку на две части,как при использовании фильтра truncatewords. Как такое можно реализовать? Так же, как можно реализовать вывод текста второй половины статьи, после первого тега <p>?

Пример:

Входные данные: Hello <p>world</p>!

выходные данные: ["Hello", "<p> word</p>!"]


Ответы (1 шт):

Автор решения: Andrey Maslov

если нужно только первый тег так выделять, то можно сделать так:

    import re


    def split_tag(source_string):
        found = re.search("<(p|href|a|br|script|b|i|center|div|span)", source_string, re.IGNORECASE + re.MULTILINE + re.DOTALL) # можешь перечислить все теги, которые интересуют
        if found:
            return [source_string[:found.start()].strip(), source_string[found.start():].strip()]
        else:
            return [source_string]


    print(split_tag("Hello <p>world</p>!"))
→ Ссылка