匹配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>

原文地址:https://www.cnblogs.com/toloy/p/8955235.html

时间: 2024-10-29 09:20:38

匹配html闭合标签的相关文章

正则匹配开关闭合标签

匹配任意闭合大括号: @"""JsonKey"":{((?<G>{)|}(?<-G>)|.*?)*}" 匹配任意闭合HTML标签的正则表达式: <(?<HtmlTag>[\w]+)[^>]*?>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)

[转]使用正则表达式匹配嵌套Html标签

原文链接 https://msdn.microsoft.com/zh-cn/ff686933.aspx 本文来自Kevin Yang博客 作者:Kevin Yang 概述 正则表达式是做文本解析工作必不可少的技能.如Web服务器日志分析,网页前端开发等.很多高级文本编辑器都支持正则表达式的一个子集,熟练掌握正则表达式,经常能够使你的一些工作事半功倍.例如统计代码行数,只需一个正则就搞定.嵌套Html标签的匹配是正则表达式应用中一个比较难的话题,因为它涉及到的正则语法比较多,也比较难.因此也就更有

Java/Js下使用正则表达式匹配嵌套Html标签

转自:http://www.jb51.net/article/24422.htm 以前写过一篇文章讲解如何使用正则表达式完美解决Html嵌套标签的匹配问题(使用正则表达式匹配嵌套Html标签),但是里头用到了平衡组这样的高级特性,貌似只有DotNet还有Perl正则引擎支持,因此通用性不高. 通用 HTML 标签区配正则 最近看网站日志,发现有人在博客上转了我不知道几年前写的一个匹配 HTML 标签的正则,刚好最近也在做一些相关的事情,顿时来了兴趣.就拿回来改改,成了下面这样,可能会有一些 ca

PHP正则表达式匹配嵌套HTML标签的方法和技巧

转载请注明出处:http://blog.csdn.net/donglynn/article/details/35788879 正则表达式是一个非常有用的编程技能.一般来说,简单的抓取一个HTML页面的某一条信息,比如<title>标题</title>,是很容易实现的.但是,我们往往要抓取某一个列表页面里的多个重复的<div></div>块里的特定内容,并且<div></div>块还有嵌套的使用,我们抓取的则是每个重复<div&g

html 14 h1-h6 p img 自闭合标签 闭合标签 替换式元素 有序编号,无需编号

h1 - h6 并告诉搜索引擎 这里是标题 p 用于正文段落多 img 图片 替换元素 自闭合标签 <img src="" title="" /> 自闭合标签:hr/  br/  area/ img/ input/ 替换元素: img input textarea select object img初始化成 display:block; 无序编号 ul list 有序编号 ol list 注意:一般不会用list-style-type 设置成none 利

php 不写闭合标签

参阅了一些文章,对PHP闭合标签的总结如下:       好处:如果这个是一个被别人包含的程序,没有这个结束符,可以减少很多很多问题,比如说:header, setcookie, session_start这些动作之前不能有输出,如果不小心在?> 后边加了不可见字符(多余的空格.换行符)等破坏页面显示,就会报"Header already sent"错误,不写的话不会有此问题.另,可以直接把光标移到最后,接着编程.       坏处:在dreamweaver的视图模式下,一团糟.

匹配html img 标签的正则表达式 java

public static void main(String[] args) { String regex = "<\\s*img(.+?)src=[\"'](.*?)[\"']\\s*/?\\s*>"; Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); String content = "<img width=\"450\" height=\&q

自闭合标签-主动闭合标签-meta-link标签

<!DOCTYPE html><!--规定标准的html--><!--一个页在只有一对html标签--><!--标签的属性 指定英文--><html lang="en"><head> <!--自闭合标签 没有另一半 自动闭合 叫自闭合标签--> <!--主动闭合标签 有另一半叫主动闭合标签--> <!--head当中 大多数标签是看不到--> <meta charset=&

javascript正则表达式:匹配所有html标签

在面试的过程中遇到一个这样的题目: 比如有一段HTML字符串: var string='<div class"test">Test a code</div><em>I am a girl.</em>'; 要求写一个匹配HTML 标签的正则表达式,并且替换掉所有的标签. html标签有<h1></h1>这种成对的,也有<br/>这种自闭合的,更多的是<img style=”….” width=”22