用正则表达式取出table中的所有行(支持嵌套table)
此是通过csdn询问得高人之手写的。
谢谢gzdiablo
表达式:
<tr[^>]*>(?:(?:\s|\S)*?(?=<table|</tr>)(?(<table)<table[^>]*>(?:\s|\S)*?(?:</table>|(?:(?:<table[^>]*>(?:\s|\S)*?</table>(?:\s|\S)*?)*?</table>))(?:\s|\S)*?|))*</tr>
一条表达式就可以获取你想要的
写得好辛苦
测试:
<table width="300" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
<td><table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
</table>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
</table></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
</table></td>
</tr>
<tr>
<td><table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
</table></td>
<td> </td>
<td> </td>
</tr>
</table>
-------------------获取3个match
============================================match1
<tr>
<td> </td>
<td><table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
</table>
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
</table></td>
<td> </td>
</tr>
==============================================match2
<tr>
<td> </td>
<td> </td>
<td><table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
</table></td>
</tr>
==============================================match3
<tr>
<td><table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td> </td>
</tr>
</table></td>
<td> </td>
<td> </td>
</tr>
转载于:https://www.cnblogs.com/xioxu/archive/2006/12/27/604843.html
用正则表达式取出table中的所有行(支持嵌套table)相关推荐
- QT利用lamda正则表达式取出字符串中的浮点数与整数
文章目录 前言 一.待取的数据格式 二.Qt使用正则表达式 1.加入头文件 2.cpp中代码 2.读取到的数据 总结 前言 利用正则表达式实现取出一串字符串中的浮点数与正整数 一.待取的数据格式 以下 ...
- c#正则表达式取出数据库中带html标签的内容,C#用正则表达式 获取网页源代码标签的属性或值...
1.有url获取到网页源代码: using System.Web; using System.IO; using System.Net; private void GetHtmlinfo(string ...
- js操作table中tr的顺序,实现上移下移一行的效果
总体思路是在table外部加个div,修改div的innerHtml实现改变tr顺序的效果 具体思路是 获取当前要移动tr行的rowIndex,在table中删除掉,然后循环table的rows,到了 ...
- table中head表头固定,body滚动
转自:http://blog.csdn.net/hualele/article/details/52993315 <div style="width: 800px;"> ...
- 利用正则表达式提取网页中Table内的数据
利用正则表达式提取网页中Table内的数据 using System; using System.Collections.Generic; using System.Linq; using Syste ...
- 3.请执行命令取出linux中eth0的IP地址(考试题答案系列)
说明:本文为老男孩linux培训某节课前考试试题及答案分享博文内容的一部分,也是独立成题的,你可以点下面地址查看全部的内容信息.http://oldboy.blog.51cto.com/2561410 ...
- JavaSelenium处理页面Table以及Table中随机位置的数据
一.摘要 前一段时间公司小伙伴刚刚接触自动化,遇到的一个问题,页面新创建的数据保存后,出现在table中的某个位置,并不一定是第一行还是第几行,这种情况下如何去操控它 本篇博文将介绍处理这个问题的一种 ...
- Table中合并相同内容列+Excel中合并相同内容列。
Table中合并相同内容列的方法比较好办,网上代码也很多,参照了一些把它封装成jquery 插件,调用起来还是蛮好用的. 这个地方稍微修改了下,有的时候td中内容虽然一样,但是数据库中的value却是 ...
- python正则表达式教程_Python中正则表达式的巧妙使用一文包你必掌握正则,
Python中正则表达式的巧妙使用一文包你必掌握正则, 前言 正则表达式就是从字符串中发现规律,并通过"抽象"的符号表达出来.打个比方,对于2,5,10,17,26,37这样的数字 ...
最新文章
- 学好人工智能,其实不难,从以下几点开始
- iOS设计模式之原型模式
- excel调用python编程-使用Python对Excel进行读写操作
- 有了这篇网络排错思路大总结:我帮了不少同事~
- wxWidgets:wxAutomationObject类用法
- .net swf 上传组件
- 魔幻艰难的2020上半年!
- TensorFlow实现LeNet5模型
- 2.亿级流量的电商网站---Redis
- php环境下cache失效,cache缓存失效高并发读数据库的问题
- SQL:从入门到“精通”
- Unity3D开发之制作序列帧动画
- 盘点|国产无线通信模块厂,赶紧收藏!
- 抖音快手短视频 影视后期制作工具网址大全
- 【Word】如何生成左侧的索引目录
- 硕士学论文中的国内图书分类号和国际图书分类号
- C Primer Plus(6) 中文版 第5章 运算符、表达式和语句 5.5 类型转换
- 父类声明子类实例化对象详解
- dwz系列之三--分页
- 百度无法爬取Github Pages静态网站解决方案
热门文章
- 让我撸一次HashMap
- 提高电路板EMC能力PCB设计和布线方法
- RT-Thread优化智能车设计
- 学习如何面对失败比成功更重要
- 声音定位的距离误差到底有多高?
- 单元测试:基于Groovy的Spock框架
- PHP tcp短链接,http请求怎样实现TCP长连接、短连接
- android键盘映射(转)-- good 1,android UI
- java中mypoiexception_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...
- c 语言乘法代码,C++实现大数乘法算法代码