<(?<HtmlTag>[w]+)[^>]*?>((?<Nested><k<HtmlTag>[^>]*>)|</k<HtmlTag>>(?<-Nested>)|.*?)*</k<HtmlTag>>
分解
1、<(?<HtmlTag>[w]+)[^>]*?>
(?<HtmlTag>[w]+) 意思是将[w]+匹配到的结果存入变量HtmlTag中,名字可随意定,后面用到可使用k<HtmlTag>,比如匹配div
(?<HtmlTag>div) 一般用于不确定标签名时匹配
*? - > * 默认是贪婪模式,0次或多次,也就是尽可能多的匹配。*? 就是尽可能少匹配
2、((?<Nested><k<HtmlTag>[^>]*>)|</k<HtmlTag>>(?<-Nested>)|.*?)*
(?<Nested><k<HtmlTag>[^>]*>) | </k<HtmlTag>>(?<-Nested>) | .*?
(?<Nested><k<HtmlTag>[^>]*>)类似递归,在遇到值为<k<HtmlTag>[^>]*> +1,
</k<HtmlTag>>(?<-Nested>) 遇到值为</k<HtmlTag>> -1
.*? 就是 匹配任意单行字符
| 或
3、</k<HtmlTag>>
使用前面定义的HtmlTag内容,一般标签都是成对的,比如<div><span>...test<span></div>