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>

  • 相关阅读:
    微服务
    flume
    mongodb
    Java 代理学习笔记
    HttpClient连接池
    一起写RPC
    spring boot cloud
    .NET MVC 表主外键关系 JSON 无限循环 方案二(推荐)
    EF提示“序列化类型为XXX的对象时检测到循环引用”
    Handlebars.js registerHelper
  • 原文地址:https://www.cnblogs.com/toloy/p/8955235.html
Copyright © 2011-2022 走看看