from bs4 import BeautifulSoup
def merge_html_tags(html_string):
soup = BeautifulSoup(html_string, 'html.parser')
# Находим все теги в HTML-строке
tags = soup.find_all(True)
# Проходимся по каждому тегу
for tag in tags:
# Если у тега есть следующий соседний тег и они имеют одинаковое имя
# и оба тега содержат только текст, объединяем их
if tag.next_sibling and tag.next_sibling.name == tag.name and tag.get_text().strip() == tag.next_sibling.get_text().strip():
tag.string = str(tag) + str(tag.next_sibling)
tag.next_sibling.decompose()
# Возвращаем преобразованную HTML-строку
return str(soup)
html_string = '<b>Т</b><b><i>е</i></b><b><i>с</i></b><b>т</b>'
merged_html = merge_html_tags(html_string)
print(merged_html)
Этот код использует библиотеку BeautifulSoup для парсинга и обработки HTML-строки. Он проходит по каждому тегу в HTML-строке и, если у тега есть соседний тег с таким же именем и оба тега содержат только текст (без других вложенных тегов), то эти теги объединяются в один.
Результат выполнения кода:
<b>Т<i>ес</i>т</b>