使用正则 清除字符串中 指定标签 以外的所有 html 标签

Python 使用正则 清除字符串中除了 <sub>...</sub><sup>...</sup> 以外的所有 html 标签



指定标签内无其它标签

import re


def sub_replace(match_obj):
    # print(type(match_obj), match_obj)
    tag = match_obj.group()
    if 'sub>' in tag or 'sup>' in tag:
        return tag


text = "<a>测试</a><sub>--sub标签内容--</sub><div>测试</div><sup>--sup标签内容--</sup><div>测试测</div>"

# re.sub 可传入 一个可调用对象
regex = re.compile(r'(<?[^>]+>)')
result = regex.sub(sub_replace, text)
print(result)  # <sub>--sub标签内容--</sub><sup>--sup标签内容--</sup>



指定标签内有其它标签

import re

text = '<a>1111111</a><sub>--sub标签内容--<div>aaaa</div></sub><img>2222222</img><sup>--sup标签内容--<div>aaaa</div></sup>'
result = re.sub(r'<(?!sup|sub)([^>]+)>.*?</\1>', '', text)

print(result)  # <sub>--sub标签内容--</sub><sup>--sup标签内容--</sup>

posted @ 2022-03-11 02:00  三个零  阅读(243)  评论(0编辑  收藏  举报