使用正则配合程序完美解决自定义HTML标签自动闭合的问题

在做网站的时候有时会碰到让用户添加一些自定义的内容,比如说公司介绍啊等这类内容用户多数是从别处复制而来,然后通过编辑器编辑,然而这些复制过来的html内容经常编辑器反复编辑就会出现html标签混乱不闭合的情况,解决此类html标签不闭合的方法可能有很多种,这里窍门天下网介绍一种通过正则表达式解决html闭合问题的技巧
大概思路,首先替换不用配对的标签 <…/> 为空,和一些特殊标签如注释标签<!–[^>]*>也替换为空,再循环替换 <…> … </…>的标签,这个标签中间不能有其它标签,如果成功匹配到后就把串全替换成空了,也就是完整闭合的,如果中间某次循环失败,说明有标签不是闭合的,此方法侧重于检测串html标签是否闭合,至于如果没有闭合需要怎么处理就交给大家发挥了
先给出正则表达式如下:
<(\w+)\b[^>]*>[^<>]*</\1>

[^<>]的限制让匹配从html字符串最内层标签,匹配到后就替换为空,然后通过程序循环继续下一轮的匹配
如:<div><span></span></div>,第一次将匹配span标签,替换为空,然后继续依此类推。
此表达式的关键点在于[^<>]保证了不匹配外层html标签。