zoukankan      html  css  js  c++  java
  • 匹配html闭合标签

    <(?<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>

  • 相关阅读:
    数组
    JavaScript语法
    Math.random()
    第二第三周暑期集训总结
    第一周
    ACM课程学习总结
    专题四---总结
    专题四--1004
    专题四--1005
    专题四--1006
  • 原文地址:https://www.cnblogs.com/toloy/p/8955235.html
Copyright © 2011-2022 走看看