以下代码的作用是,它需要一个设置的开放标记和一个结束标记,如果有任何类型的未闭合标记,它将关闭它们。问题是,它不会处理字体标签,因为字体标签只有<font>
。我认为有一种方法可以使用正则表达式使其与之前的标签匹配,然后将其传递给此html修复程序,以便它可以处理任何类型的标记。有什么建议?对于开始标记,正则表达式可能看起来像<+[\w ="\']+?>
,对于结束标记看起来可能看起来像</+[\w ="\']+?>
。如果您想知道我使用的奇怪语法,那么这是3.x.
def check_html(otag, etag, text):
ret = ['f', text, otag, etag] if text.count(otag) != text.count(etag) else ['a', text, otag, etag]
return fix_html(ret)
def fix_html(x):
grade, text, otag, etag = x
ret = [otag + text if text.endswith(etag) else s for s in text.split()] if grade == 'f' else text
ret = [text + etag if text.startswith(otag) else s for s in ret] if grade == 'f' else text
return ret[0] if grade == 'f' else ret