从字符串中删除html图像标记及其间的所有内容

blz*_*blz 7 html python regex beautifulsoup

我已经看到了一些关于从字符串中删除HTML标记的问题,但我仍然不清楚应该如何处理我的特定情况.

我已经看到许多帖子建议不要使用正则表达式来处理HTML,但我怀疑我的案例可能会明智地规避这条规则.

我正在尝试解析PDF文件,并且我已经成功地将每个页面从我的示例PDF文件转换为UTF-32文本字符串.当图像出现时,会插入一个HTML样式的标签,其中包含图像的名称和位置(在其他地方保存).

在我的应用程序的一个单独部分,我需要摆脱这些图像标签.因为我们处理图像标签,所以我怀疑可能需要使用正则表达式.

我的问题是双重的:

  1. 我应该使用正则表达式来删除这些标记,还是应该使用像BeautifulSoup这样的HTML解析模块?
  2. 我应该使用哪种正则表达式或BeautifulSoup结构?换句话说,我该怎么编码呢?

为清楚起见,标签的结构为 <img src="/path/to/file"/>

谢谢!

jos*_*tme 12

我会投票,在你的情况下,使用正则表达式是可以接受的.这样的事情应该有效:

def remove_html_tags(data):
    p = re.compile(r'<.*?>')
    return p.sub('', data)
Run Code Online (Sandbox Code Playgroud)

我在这里找到了这个片段(http://love-python.blogspot.com/2008/07/strip-html-tags-using-python.html)

编辑:只删除表单内容的版本<img .... />:

def remove_img_tags(data):
    p = re.compile(r'<img.*?/>')
    return p.sub('', data)
Run Code Online (Sandbox Code Playgroud)