JavaJs下使用正则表达式匹配嵌套Html标签.docx

上传人:b****3 文档编号:4606031 上传时间:2023-05-07 格式:DOCX 页数:35 大小:19.47KB
下载 相关 举报
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第1页
第1页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第2页
第2页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第3页
第3页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第4页
第4页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第5页
第5页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第6页
第6页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第7页
第7页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第8页
第8页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第9页
第9页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第10页
第10页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第11页
第11页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第12页
第12页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第13页
第13页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第14页
第14页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第15页
第15页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第16页
第16页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第17页
第17页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第18页
第18页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第19页
第19页 / 共35页
JavaJs下使用正则表达式匹配嵌套Html标签.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JavaJs下使用正则表达式匹配嵌套Html标签.docx

《JavaJs下使用正则表达式匹配嵌套Html标签.docx》由会员分享,可在线阅读,更多相关《JavaJs下使用正则表达式匹配嵌套Html标签.docx(35页珍藏版)》请在冰点文库上搜索。

JavaJs下使用正则表达式匹配嵌套Html标签.docx

JavaJs下使用正则表达式匹配嵌套Html标签

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

有朋友留言说Java直接使用的话会报错。

我后来查了一下,发现Java正则引擎支持的特性相对比较少。

在1.6版本中不能使用命名组(貌似1.7的时候开始支持了),否则会报以下错误,更别说平衡组了。

因此感觉要实现无限级的嵌套匹配不大现实。

复制代码代码如下:

java.util.regex.PatternSyntaxException:

Look-behindgroupdoesnothaveanobviousmaximumlengthnearindexXX在网上搜了好久也没找到完美的解决方案。

不过,我们可以实现有限级Html嵌套标签匹配。

思路相对于无限级来说就简单了好多,不需要那么多高级的特性。

示例:

复制代码代码如下:

<divid=‘container’><BR><divstyle=‘background-color:

gray;’id=‘footer’><BR><aid=‘gotop’href=‘#’onclick=‘MGJS.goTop();returnfalse;’>Top</a><BR><aid=‘powered’href=‘http:

//wordpress.org/’>WordPress</a><BR><divid=‘copyright’><BR>Copyright©2009简单生活——KevinYang的博客<BR></div><BR><divid=‘themeinfo’><BR>Themeby<ahref=‘Valid<ahref=‘http:

//validator.w3.org/check?

uri=referer’>XHTML1.1</a><BR>and<ahref=‘http:

//jigsaw.w3.org/css-validator/’>CSS3</a>.<BR></div><BR></div><BR></div>在上面这个示例中,我们打算匹配id为footer的这个嵌套div,而且假设我们预先知道footer这个div里面最多只会嵌套一级div。

更多级的情况我们一会儿再讲。

footer的开始和结束标签匹配很简单:

复制代码代码如下:

<div[oter’[r的闭合标签会匹配失误。

OK了,匹配最多嵌套一级div的正则表达式如下:

复制代码代码如下:

<div[;div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>到这里你可能就知道,如果要匹配最多嵌套三级div的话,正则应该怎么写了:

复制代码代码如下:

<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[;div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>到这里你可能就知道,如果要匹配最多嵌套三级div的话,正则应该怎么写了:

复制代码代码如下:

<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[;div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>到这里你可能就知道,如果要匹配最多嵌套三级div的话,正则应该怎么写了:

复制代码代码如下:

<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>.*?

</div>|.)*?

</div>那么如果footer标签里头最多会嵌套两级div的话怎么办呢?

其实也不难,我们只需要把上面的“内容A”部分中的点号稍作替换即可。

修改如下:

复制代码代码如下:

<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>到这里你可能就知道,如果要匹配最多嵌套三级div的话,正则应该怎么写了:

复制代码代码如下:

<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>(<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*>......(这里的省略号是一会要填写的)</div>夹在开始和结束标签之间的内容无非有两种情况:

内容A:

div标签,并且此div内无嵌套div内容B:

任意其他内容然后就是这两种内容的不断重复而已。

正则表示如下:

复制代码代码如下:

(<div[r的闭合标签会匹配失误。

OK了,匹配最多嵌套一级div的正则表达式如下:

复制代码代码如下:

<div[;div[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;]*>.*?

</div>|.)*?

</div>|.)*?

</div>|.)*?

</div>所以实际上,只要你的html结构不是特别复杂的话,也就是说嵌套不会很深的话,那么你完全可以使用这种方式来匹配嵌套html标签。

这个正则在Java和Javascript中都可以使用,因为它没有用到任何高级特性。

gt;]*id=‘footer’[<div[[标签:

内容]gt;]*>(<div[[标签:

内容]gt;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2