Если для одной строки текста имеется несколько тегов <i>, есть ли способ обернуть текст только в один тег <i>? - PullRequest
0 голосов
/ 03 июля 2019

Я работаю с очень грубым html-файлом.

Это выглядит примерно так:

<p><i><font size="2" style="font-size:10.0pt;font-style:italic;"> The
    Company’s future results</font></i><i><font size="2" style="font-size:10.0pt;font-style:italic;">
    and energy,</font></i><i><font style="font-style:italic;">including oil
    and natural gas</font></i><i><font style="font-style:italic;">are under risk</font></i>Some text in the p tag</p>

Текст The Company's future results and energy, including oil and natural gas are under risk состоит из нескольких <i> тегов

Есть ли способ, которым я могу получить только один <i> вокруг этого текста.(Меня не волнует тег шрифта).Мой HTML должен выглядеть примерно так:

<p><i><font size="2" style="font-size:10.0pt;font-style:italic;"> The
    Company’s future results</font><font size="2" style="font-size:10.0pt;font-style:italic;">
    and energy,</font><font style="font-style:italic;">including oil
    and natural gas</font><font style="font-style:italic;">are under risk</font></i>Some text in the p tag</p>

1 Ответ

0 голосов
/ 03 июля 2019

Вы можете просто использовать регулярные выражения для этого. Как:

import re
html= re.sub(r'</i><i>', '', html, flags=re.I)

Конечно, если вы уверены, что i-тег всегда пишется в нижнем регистре, вы можете просто сделать:

html= html.replace('</i><i>', '')

Обе версии основаны на предположении, что открывающий и закрывающий i-теги появляются рядом друг с другом, чтобы их можно было заменить (но я думаю, это то, что вы хотите, верно?).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...