Как удалять любые теги из строки в Python

Библиотека BS4 и другие инструменты позволяют удалять HTML теги (.decompose(), .get_text() и т.д.), но бывают ситуации, когда необходимо удалить какие-то произвольные теги. Данная функция позволяет определить нужные теги и удаляет их из строки.

# The function:
def delete_tags(txt,tags):
    for tag in tags:
        tag_starts = 0
        while tag_starts!=-1:
            tag_starts = txt.find(tag[0])
            tag_ends = txt[tag_starts:].find(tag[1]) + tag_starts
            txt = txt.replace(txt[tag_starts:tag_ends+len(tag[1])],"")
    return txt


#how to use:
#provide list of tuples of tags (begining of a tag, end of a tag) Example:
tags = [("[tagid:","]"),("<http",">"),("<mailto",">"),("{tagid","}")]

#Example input text:
text_with_tags = "This is an example <mailto:excelfiles.space > Tag2 [tagid:tagvalue] tag3: {tagid:tagvalue} "


text_without_tags = delete_tags(text_with_tags, tags)
print(text_with_tags,"\n",text_without_tags)