提取html中table的正则表达式

来源:互联网 发布:数据库基本基本原理 编辑:程序博客网 时间:2024/05/08 07:10
 <tableid="2">


<tr>


<td>


abc


</td>


</tr>


</table>


</td>


</tr>


<tr>


<td>


<tableid="3">


<tr>


<td>


def


</td>


</tr>


</table>


</td>


</tr>


</table>





目标:用正则表达式提取


table2,和table3








谢谢了!



答:http://community.csdn.net/Expert/topic/5724/5724082.xml?temp=.7311212





lxcnn(过客)(超级大菜鸟,昨天才上路)()信誉:100





如果楼主能保证其它<table>都包含在这个<table>内,且所有的<table>和</table>都是配对出现的,那么用这个是最简单的了





<table[^>]*>[\s\S]*</table>





如果不是这样,即还有不包含在这一<table>标签内的其它<table>标签,那么


1、此<table>标签内就只有<table>嵌套标签,而没有其它<...>形式的标签,那么可以用楼上所给平衡组,或是如下两种形式








<table[^>]*>(([^<>]*(?:<[^>]*>)?[^<>]*?)¦[^<>]*)</table>





<table[^>]*>(?><table[^>]*>(?<TOPTABLE>)¦</table>(?<-TOPTABLE>)¦[^<>])*(?(TOPTABLE)(?!))</table>





2、此<table>标签内还有其它标签,如<tr>等,或是</table>可能不配对出现,正则实现起来有些困难,如果楼主确实有此需要,说明一下,我用其它方式来实现





to:lxcnn(过客)大哥,可否把你的其他方式来实现给发一下?
答:因为一些个人原因,最近不想答正则问题了,呵呵,不过楼主既然提到我,那就回下吧








你要的是最内层的table吗,这样试下,看看是不是你要的结果吧,如果不是,再说明下,或是给出你要的结果





DimyourStrAsString=...............


DimmcAsMatchCollection=Regex.Matches(yourStr,"<table[^>]*>(<(?!/?table)[^>]*>¦[^<>]*)*</table>",RegexOptions.IgnoreCase)


ForEachmAsMatchInmc


RichTextBox2.Text=m.ValuevbCrLf


Next
答:lxcnn(过客)大哥:


用你的正则是可以提取我上面的html代码中的table,





但如果yourStr是一张网页代码


我用的RegexTester.exe要死掉好一会才能出来,而且提取不出来东西。


是不是正则处理这样的事情不够高效?





我的msn:huxming1981@hotmail.com


非常的谢谢!
答:不知道你为什么要用正则!JS里面处理DOM元素的功能不够用吗?
答:如果是处理整个网页的table,那确实没必要用正则的,正则并不适合用来处理这样的问题,参考下这两个帖子的方法





http://topic.csdn.net/t/20061212/20/5225944.html


http://community.csdn.net/Expert/topic/5326/5326155.xml?temp=.248501
答:to:chuxue1342(@楚}===天{==========雪饮>)


你好,也许我的上司不了解JS,其实我也不是很了解JS


我们目前是分析网页,


在VS2005的环境用VB语言。


首先用webrequest得到一个网页的代码,在用正则分析网页中


table的树状结构。


比如





table1-


¦


table2


¦


table3-


¦


table4......





这样的功能JS可以实现吗?















答:lxcnn(过客)大哥这么及时啊


我还在编辑你就回复了


谢谢啊。


我仔细研读一下。
答:目前是用webBrowser提取的,不过这种方式有时会遇到一些错误,还有就是速度会慢一些。





http://community.csdn.net/Expert/topic/5326/5326155.xml?temp=.248501





这个贴是我们发的,


现在我们就想用webrequest来试试。看能否实现的了。
答:<table[^>]*>(<(?!/?table)[^>]*>¦[^<>]*)*</table>
答:stringHtml=dt.Rows[0]["Html"].ToString();//从数据库中读取出来的HTML


System.Text.RegularExpressions.Regexre=newSystem.Text.RegularExpressions.Regex(@"<table[^>]*>(<(?!/?table)[^>]*>¦[^<>]*)*</table>");


if(re.IsMatch(s))


{


System.Text.RegularExpressions.MatchCollectionmc;


mc=re.Matches(s);


for(inti=0;i<mc.Count;i)


{


stringstr1=mc.Value.ToString();


}


}

答:这样就可以循环取到页面中所有这个正则匹配的内容。。。
答:最近正则市场好火哦~
答:首先用webrequest得到一个网页的代码,在用正则分析网页中


table的树状结构。


比如





table1-


¦


table2


¦


table3-


¦


table4......





这样的功能JS可以实现吗?


------------------------------------


看你提取这些内容有什么用!!功能当然都能实现啊!!


不过如果你只是取table里面的内容,那就用正则提取吧!
0 0
原创粉丝点击