У меня есть несколько строк, которые я хочу обернуть тегами HTML внутри документа HTML.Я хочу оставить текст таким же, но заменить строки на элементы HTML, содержащие эту строку.
Кроме того, некоторые строки, которые я хочу заменить, содержат другие строки, которые я хочу заменить.В этих случаях я хочу применить замену большей строки и игнорировать замену меньшей строки.
Кроме того, я хочу выполнять эту замену только тогда, когда эти строки полностью содержатся в одном и том же элементе.
Вот мой список замены.
replacement_list = [
('foo', '<span title="foo" class="customclass34">foo</span>'),
('foo bar', '<span id="id21" class="customclass79">foo bar</span>')
]
Учитывая следующий html:
<html>
<body>
<p>Paragraph contains foo</p>
<p>Paragraph contains foo bar</p>
</body>
</html>
Я бы хотел заменить это:
<html>
<body>
<p>Paragraph contains <span title="foo" class="customclass34">foo</span></p>
<p>Paragraph contains <span id="id79" class="customclass79">foo bar</span</p>
</body>
</html>
До сих пор я пытался использовать красивую библиотеку супа и перебирать свой список замены в порядке уменьшения длины строки, и я могу найти и заменить свои строки другими строками, но я не могу понять, как вставить HTML в эти строки.точки.Или есть ли лучший способ полностью.Попытка выполнить подстановку строки с помощью объекта soup.new_tag завершится неудачно, независимо от того, преобразую ли я ее в строку или нет.
РЕДАКТИРОВАТЬ: понял, что приведенный мной пример даже не соответствует моим собственным правилам, модифицированный пример.