asp.net正则匹配嵌套Html标签
废话不多说,直接代码
1、要匹配的html代码
<div class="conItem" id="footer">
<a id="gotop" href="#" onclick="MGJS.goTop();return false;">Top</a>
<a id="powered" href="http://wordxxx.org/">WordPress1</a>
<div id="copyright">
Copyright © 2001 简单生活</div>
<div id="themeinfo">
Theme by <a href="http://www.xxx.com/">mg12</a>.
Valid <a href="http://xxx.xxxxxx.org/check?uri=referer">XHTML 1.1</a>
and <a href="http://xxx.xxx.org/css-validator/">CSS 3</a>.
<div>
<div><span>111111</span></div>
</div>
</div>
</div>
<div>123</div>
<div class="conItem" id="footer">
<a id="gotop" href="#" onclick="MGJS.goTop();return false;">Top</a>
<a id="powered" href="http://xxx.org/">WordPress2</a>
<div id="copyright">
Copyright © 2002 简单生活</div>
<div id="themeinfo">
Theme by <a href="http://www.xxxxx.com/">mg12</a>.
Valid <a href="http://xxxx.xxxxx.org/check?uri=referer">XHTML 1.1</a>
and <a href="http://xxxx.wwwwww.org/css-validator/">CSS 3</a>.
<div>
<div><span>222222</span></div>
</div>
</div>
</div>
<div>456</div>
<div class="conItem" id="footer">
<a id="gotop" href="#" onclick="MGJS.goTop();return false;">Top</a>
<a id="powered" href="http://xxxxx.org/">WordPress3</a>
<div id="copyright">
Copyright © 2003 简单生活</div>
<div id="themeinfo">
Theme by <a href="http://www.xxxxxx4.com/">mg12</a>.
Valid <a href="http://xxx.wwwww3.org/check?uri=referer">XHTML 1.1</a>
and <a href="http://wwwwwx.wwww3.org/css-validator/">CSS 3</a>.
</div>
</div>
2、正则代码
可以根据id匹配,也可以根据class匹配
string html = “html代码”;
//Regex reg = new Regex(@"<(?<HtmlTag>[\w]+)[^>]*\sclass=(?<Quote>[""']?)conItem(?(Quote)\k<Quote>)[""']?[^>]*>((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*</\k<HtmlTag>>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
Regex reg = new Regex(@"<(?<HtmlTag>[\w]+)[^>]*\s[iI][dD]=(?<Quote>[""']?)footer(?(Quote)\k<Quote>)[""']?[^>]*>(((?<Nested><\k<HtmlTag>[^>]*>)|</\k<HtmlTag>>(?<-Nested>)|.*?)*)</\k<HtmlTag>>", RegexOptions.IgnoreCase | RegexOptions.Singleline);
MatchCollection mc = reg.Matches(html);
if (mc.Count > )
{
Response.Write(mc.Count.ToString());
foreach (Match m in mc)
{
string strItem = m.Value;
Response.Write(strItem + "<br><br><br>\r\n-------------------------\r\n");
}
}
代码收集于网络,亲测有效!
asp.net正则匹配嵌套Html标签的更多相关文章
- Java/Js下使用正则表达式匹配嵌套Html标签
转自:http://www.jb51.net/article/24422.htm 以前写过一篇文章讲解如何使用正则表达式完美解决Html嵌套标签的匹配问题(使用正则表达式匹配嵌套Html标签),但是里 ...
- Asp.Net正则获取页面a标签里的内容
Asp.Net正则获取页面a标签里的内容 string url = "http://www.114369.com"; string html = MyCLib.NetClass.S ...
- 正则匹配闭合HTML标签(支持嵌套)
任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题.关于正则引擎的原理,推荐<Mastering R ...
- js 正则匹配(去掉html标签)
正则匹配去掉所有html标签 var a = "<span>999</span>" a = a.replace(/<[^>]+>/g,' ...
- 正则匹配抓取input 隐藏输入项和 <td>标签内的内容
这里不多作解释了,只要提供方法,如果想了解正则匹配,就去百度. 第一条是,匹配出所有的隐藏输入域 $patern = "/<input(.*?)type=\"hidden\& ...
- 正则匹配报文中的XML(HTML)标签,替换重新输出
调用返回报文标签中的存在中划线“-”,不符合规范,需要统一进行转换,但不能替换标签内的内容,利用正则匹配重新输出 /** * 正则匹配报文中的xml标签,将其中的"-"转换为&qu ...
- 第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签
第三百二十五节,web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签 标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需 ...
- Jqgrid利用正则匹配表达式正确移除html标签
在使用JqGrid表格插件过程中,遇到一个问题:后台取出来的字段是带有Html标签的,于是将内容填充到表格之后,带有的html标签会把表格撑开或者每一行的内容显示不统一,导致非常难看,就像下图所示: ...
- 四 web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签
标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需要导入模块:from scrapy.selector import HtmlXPa ...
随机推荐
- ubuntu下安装万能五笔
之前一直习惯了万能五笔输入法,使用Ubuntu12.04安装wnwb 在网络上搜索了一下并没有找到可 以在ibus下直接使用万能五笔的方法,于是想自己动手解决这个问题, 参考别人之前做的万能五笔For ...
- hihocoder第212周-动态规划
题目链接 import java.util.Scanner; public class Main { long mod = (long) (1e9 + 7); int MAXN = 107; int ...
- mysql--SQL编程(基础知识) 学习笔记1
1.数据库应用类型分类: 一般来说,可将数据库的应用类型分为OLTP(OnLine TransactionProcessing ,联机事务处理)和OLAP(OnLine Analysis Proces ...
- 树莓派进阶之路 (019) - 树莓派通过filezilla,samba与PC文件共享(转)
虽然我们可以很方便的通过ssh譬如putty或者vnc连接操控树莓派,但是毕竟树莓派资源没那么高,在上面编程,调试要吃力的多.所以还是想在pc上编程上传到树莓派或者最好,文件共享,可以直接读写共同的文 ...
- ceph iscsi (SCST)
ceph结合iscsi iscsi Target 安装 1.安装SCST tar -jxf scst-3.0.1.tar.bz2 cd scst-3.0.1 make && make ...
- 【JavaScript】浅析ajax的使用
目录结构: contents structure [+] Ajax简介 Ajax的工作原理 Ajax的使用步骤 使用原生的js代码 使用JQuery代码 JQuery中常用的Ajax函数 $.ajax ...
- linux手工释放内存
先使用sync命令以确保文件系统的完整性,sync 命令运行 sync 子例程,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node.已延迟的块 I/O 和读写映射文件. 再执行下面任意一条命 ...
- SQL触发器 常用语句
一.创建一个简单的触发器 CREATE TRIGGER 触发器名称 ON 表名 FOR INSERT.UPDATE 或 DELETE AS T-SQL 语句 注意:触发器名称是不加引号的. ...
- Android开发之AsyncTask的使用
Android API 3时引进了AsyncTask,也叫异步任务.使用它可以很方便的更新主线程中的UI,使用它比Handler.Thread更简单.由于AsyncTask是抽象类,要使用它首先要创建 ...
- 安装 Vbundle 的笔记
Vbundle 挺好用的,能够很方便管理Vim的一些插件.虽然Vbundle的安装方法看的很简单,但是它的配置却让我弄了很久,现在记录如下,方便后面安装时再出现相同的问题: 我按照这里的官方提示的安装 ...