我正在开发一个格式化HTML的程序,用于reddit的注释。所以,例如,如果我有:
<i> This is Italics <b> but this is bold and italics</b> and back to italics <i>
我想将其格式化为
*This is Italics* ***but this is bold and italics*** *and back to italics*
所以它会产生: 这是斜体 ,但这是粗体 并返回斜体
我无法找到标签内的所有标签,并用适当数量的星号替换它们,而不会弄乱格式化。我尝试了几件事,但最近的是:
italics = soup.find_all('i')
for i in range(len(italics)):
bold = italics[i].find_all('b')
for j in bold:
bold[i].replace_with('***' + bold[i].text + '***')
但是我在尝试编辑嵌套标签时遇到错误,我不想用***修改每个粗体标签,只是斜体内的标签,所以它保持格式化,剩下的我可以改为**。 / p>
答案 0 :(得分:0)
也许更容易(理解)这样的事情。
italics = soup.find_all('i')
for i in italics:
print(i.b)
if i.b:
i.b.replace_with('***' +i.b.text +'***')
print(soup)
整个代码,愚蠢但有效
italics = soup.find_all('i')
for i in italics:
print(i.b)
if i.b:
i.b.replace_with('* ***'+ i.b.text +'*** *')
i.replace_with('*'+i.text+ '*')
print(soup)