用正则表达式匹配HTML\XML等文件中的标签


测试用HTML源文件:

View Code
<table cellspacing=0 cellpadding=0 border=0 width=100%>
  <tr>
         <td width="145px" valign=top><center>
     <div style="border:1px solid #588acb;padding:1px">    
       <a href="http://game.china.com/online/wmworld/news/11099107/20121226/17602912.html" target="_blank" style="text-decoration:none"><img src="http://news.youdao.com/improxy?w=145&h=109&id=b2cd45d7ccce332b"></a>
     </div>
   </center></td>
      <td valign=top>      <table cellspacing=0 cellpadding=0 border=0 width=98% align=right>
       <tr>
         <td colspan=2 style="padding-top:5px">
           <span id="title0"><a id="hitURL0" href="http://game.china.com/online/wmworld/news/11099107/20121226/17602912.html" target="_blank">《完美世界:天界的召唤》缤纷圣诞总动员</a></span>         
         </td>
       </tr>
       <tr>
         <td colspan=2 style="padding-top:5px">
           <font size="-1"><span style="color:#636563"><nobr>[ 中华网 1小时前]</nobr></span><BR>
           经过了平安夜和圣诞节,节日的气氛被推到了最高点!《完美世界:天界的召唤》为玩家准备了精彩纷呈的圣诞节活动,而玩家也纷纷借着这个特殊的日子,三五成群的举办着各种小聚会,在完美大陆中享受着这个浪漫的圣诞...</font>
         </td>
       </tr>
       <tr>
         <td colspan=2 style="padding-top:10px">         
         <font size="-1">
         <img src="http://news.youdao.com/images/tranpointsymbol.png" 
           border="0" alt="" align=absmiddle><span id="title0"><a id="hitURL0" 
           href="http://www.265g.com/news/gamenews/300073.html" target="_blank">圣诞元旦大狂欢360uu《盛世三国》双蛋大礼齐献映</a></span> <span 
           style="color:#636563"><nobr>[ 265G 1小时前]</nobr></span><br><img src="http://news.youdao.com/images/tranpointsymbol.png" 
           border="0" alt="" align=absmiddle><span id="title0"><a id="hitURL0" 
           href="http://life.qianlong.com/36311/2012/12/26/7144@8406202.htm" target="_blank">贝立兹携手浦南幼儿园举办趣味英语圣诞派对</a></span> <span 
           style="color:#636563"><nobr>[ 千龙新闻网 3小时前]</nobr></span><br></font>         
         <div><img src="http://news.youdao.com/images/tranzhuantisymbol.png" border="0" alt="" align=absmiddle><nobr><font size=-1><a style="color:#008000;" href="top?item=1b620d66539e81dd">查看专题 (780篇新闻 )</a></font></nobr></div>
         </td>
         <td valign=bottom>&nbsp;</td>            
       </tr>
     </table>    </td> 
  </tr>
</table>

一、匹配所有标签

\<.[^<>]*\>

思路:

1、首先匹配<和>,得到"\<.*\>",(\为转义,<和>加不加都可以)但出现多个标签在一组中。

2、排除中间的<和>,表达式改为"\<.[^<>]*\>"。

3、如果想得到不包含属性的所有标签,可以加个字符数限制,根据标签字符数,表达式改为“\<\S[^<>]{0,12}\>”。

二、匹配指定标签

匹配所有DIV标签 \<\bdiv.*\<\/div\b\>

思路:

1、以<div 开头,得到“\<\bdiv”。

2、以<\div>结束,得到“\<\/div\b\>”,\\注意两次\b的使用,\b用于匹配位于词开始处的词边界和用于匹配词结尾处的词边界。

3、连接两个表达式,中间填充任意字符,\<\bdiv.*\<\/div\b\>。

感慨:正则表达式真强大。

 

20130123补充

提取标签中的内容

>.[^<>]+<

<li><a href="http://sports.sina.com.cn"target="_blank">新浪</a></li>
<li><a href="http://news.yule.com.cn"target="_blank">中国娱乐网</a></li>
<li><a href="http://pzh.scol.com.cn"target="_blank">四川在线</a></li>
<li><a href="http://news.0755car.com"target="_blank">车神榜</a></li>

结果:

>新浪<

>中国娱乐网<

>四川在线<

>车神榜<

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



猜您在找 使用正则表达式 匹配 HTML 标签内的内容 正则表达式匹配html标签 javascript正则表达式:匹配所有html标签 javascript正则表达式:匹配所有html标签 正则表达式匹配Html标签 [Python正则表达式] 字符串中xml标签的匹配 正则表达式去除html中的标签 正则表达式匹配a标签或div标签 (转)PHP正则表达式匹配嵌套HTML标签的方法和技巧 使用正则表达式匹配HTML 下各种标签 </a> <div id="right_float_ad" class="ad"> </div> </div> </div> </div> </div> <div class="clear"> </div> <div class="fbar" style="z-index:100"> <div class="span7" style="color:grey;font-size:12px;"> </div> <div class="pull-right"> <span><a href="http://beian.miit.gov.cn" rel="nofollow" target="_blank">粤ICP备18138465号</a>  </span><span>© 2018-2025 CODEPRJ.COM </span> </div> </div> <script src="/js/code.js?version=20250518"></script> <script> function buffer(a, b, c) { var d; return function() { if (d) return; d = setTimeout(function() { a.call(this), d = undefined }, b) } } (function() { function e() { var d = document.body.scrollTop || document.documentElement.scrollTop; d > b ? (a.className = "div1 div2", c && (a.style.top = d - b + "px")) : a.className = "div1" } var a = document.getElementById("float"); if (a == undefined) return ! 1; var b = 0, c, d = a; while (d) b += d.offsetTop, d = d.offsetParent; c = window.ActiveXObject && !window.XMLHttpRequest; if (!c || !0) window.onscroll = buffer(e, 50, this) })(); </script> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?85c5e8e7b6167edfc87cb0607142e870"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>