删除其paren中的HTML子级

2024-03-29 14:43:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些类似这样的HTML:

<ul>
  <li>Item 1</li><br>
  <li>Item 2</li><br>
  <li>Item 3</li><br>
</ul>

<img src="someImage.png"><br>

我想用regex从<li>标记和<img>标记后面删除<br>标记,尽管我不知道该怎么做。HTML不保持不变,因此图像和列表可能位于不同的位置,或者可能有其他内容,尽管在</li></img>之后总是有<br>

我可以用什么正则表达式来用python解决这个问题?谢谢。你知道吗

编辑:

我试着用这个(<img.+?>)<br>来处理图像,但是没有用。你知道吗

我不想简单地删除所有的<br>标记,因为在HTML中可能有一些有用的标记,而是希望删除列表项和图像之后的标记。你知道吗


Tags: 标记图像brsrc编辑内容列表img
1条回答
网友
1楼 · 发布于 2024-03-29 14:43:52

以下是从列表中删除<br>的方法:

re.sub(r'</li>(\<br>)', '\1', string)

对于图像来说也是一样的。你知道吗

re.sub(r'(<img.+?>)(\<br>)', '\1', string)
网友
2楼 · 发布于 2024-03-29 14:43:52

这是删除br标记的一种方法:

import re
print re.sub('<br>', "", '<li>Item 1</li><br>')

如果文档中有许多br标记,则必须将数据存储在如下变量中:

data = 'your full html document as a string'
print re.sub('<br>', "", data)

然后这将删除整个data文档中的所有br标记。你知道吗

如果您只想删除br标记之后的li标记,那么您可以这样做:

data = 'your full html document as a string'
print re.sub(r'^<li>\<br>', "", data)
网友
3楼 · 发布于 2024-03-29 14:43:52

无需使用正则表达式即可解决此问题(请在此处插入对传奇regex/html答案的引用):

the_string = '<p>Text we want to keep</p><br>'
the_string = the_string.rstrip('<br>')

相关问题 更多 >