开贴求一正则表达式 <table </table>之间的写法,我也在寻找,你要是找到了,麻烦教我一下……---------------------<img > 之间的正则!preg_match_all("/(\<img)(.[^\>]*)/i",$text, $msg); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那是递归匹配。好象是php4x还是php5才开始支持的。 我写的匹配复杂表格的正则。要是报错就升级你的php。php5下测试无误。#(?:^|.)(?=(<table(?:(?:[^<]|<(?!table))*?|(?1))*</table>))# 多写了一截。这样写就可以了。#(?=(<table(?:(?:[^<]|<(?!table))*?|(?1))*</table>))# preg_match_all("/(\<img)(.[^\>]*)/i",$text, $msg);preg_match_all("/<table(.[^\>]*)>(.*?)<\/table>/is",$text,$msg); $ar = preg_split("/<table(.[^\>]*)>(.*?)<\/table>/is", $text, -1, PREG_SPLIT_ALL);这个是我用上面这个正则截出来的效果,不是我想要的结果啊!Array( [0] => Array ( [0] => Array ( [0] => <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td align="center" valign="top" > <table width="580" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="28" align="center" background="images/4Down.gif" style="word-break:break-all">你们的江泽民主席来啦!</td> </tr> <tr> <td height="20" align="center"><img src="images/sun.gif" width="9" height="9" align="absmiddle" /> 作者: David 发表日期: 2006-07-19 13:30:26 </td> </tr> <tr> <td align="left" class="topline" style="word-break:break-all"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="10"></td> </tr></table> [1] => 4 ) [1] => Array ( [0] => width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" [1] => 10 ) [2] => Array ( [0] => <tr> <td align="center" valign="top" > <table width="580" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="28" align="center" background="images/4Down.gif" style="word-break:break-all">你们的江泽民主席来啦!</td> </tr> <tr> <td height="20" align="center"><img src="images/sun.gif" width="9" height="9" align="absmiddle" /> 作者: David 发表日期: 2006-07-19 13:30:26 </td> </tr> <tr> <td align="left" class="topline" style="word-break:break-all"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="10"></td> </tr> [1] => 100 ) ) [1] => Array ( [0] => Array ( [0] => <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" > <tr> <td class="blogtit col1">个人空间分类</td> </tr> <tr> <td align="left" valign="top" class="p10"><div class="article"> <ul> <li>暂时没有个人空间分类</li> </ul> </div></td> </tr> </table> [1] => 3441 ) [1] => Array ( [0] => width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" [1] => 3447 ) [2] => Array ( [0] => <tr> <td class="blogtit col1">个人空间分类</td> </tr> <tr> <td align="left" valign="top" class="p10"><div class="article"> <ul> <li>暂时没有个人空间分类</li> </ul> </div></td> </tr> [1] => 3524 ) )) 我说说我的意思吧,用这个正则我是想截取字符串!我想要如果遇到<img 被截取一半的时候把这个文字一直截到 >结束<table>也是一样一半的话就截取到</table>结束 preg_split是用来分割字符串的。谁说可以用来截断定长字串的?你思路上本来就有问题。 http://community.csdn.net/Expert/topic/4884/4884378.xml?temp=.953808 我看了,zeroleonhart(Strong Point:Algorithm) 但是感觉还是理解不了table的问题table有的时候是套在table中的 我写的那个正则就可以正确的识别一切嵌套的table。只不过不能用于preg_splite函数罢了。preg_match_all("#(?=(<table(?:(?:[^<]|<(?!table))*?|(?1))*</table>))#",$str,$ar);print_r($ar);你自己看结果吧。 为什么我用了GDJ的以后出现PHP has encountered a Stack overflowHTTP/1.1 500 Server Error Server: Microsoft-IIS/5.1 Date: Tue, 05 Sep 2006 14:04:49 GMT Content-Type: text/html Content-Length: 44 -2147417842 (0x8001010e)我截取的是$str = file_get_contents("http://stock.business.sohu.com/p/pl.php?code=600240"); Zend Studio使用的问题,奇怪 smarty出现的错误 急救!help me! 求教,int型的数据,这样的问题该怎样解决? 晕死,我的主页怎么有病毒了? 求救 有人能给我一个简单的php +mysql的论坛源程序吗? 难点:如何将网页里的数据转存到Excel表或Access里啊 (*****向斑竹你提个小见意,大家最好都来看看,这个想法好不好!****) SOS!!怎么老是行不通?帮帮忙吧! 获取土豆网的视频的真实地址的PHP源码~~ 取子字符串问题
preg_match_all("/<table(.[^\>]*)>(.*?)<\/table>/is",$text,$msg);
这个是我用上面这个正则截出来的效果,不是我想要的结果啊!
Array
(
[0] => Array
(
[0] => Array
(
[0] => <table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">
<tr>
<td align="center" valign="top" > <table width="580" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="28" align="center" background="images/4Down.gif" style="word-break:break-all">你们的江泽民主席来啦!</td>
</tr>
<tr>
<td height="20" align="center"><img src="images/sun.gif" width="9" height="9" align="absmiddle" /> 作者: David 发表日期: 2006-07-19 13:30:26 </td>
</tr>
<tr>
<td align="left" class="topline" style="word-break:break-all"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="10"></td>
</tr>
</table>
[1] => 4
) [1] => Array
(
[0] => width="100%" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"
[1] => 10
) [2] => Array
(
[0] =>
<tr>
<td align="center" valign="top" > <table width="580" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="28" align="center" background="images/4Down.gif" style="word-break:break-all">你们的江泽民主席来啦!</td>
</tr>
<tr>
<td height="20" align="center"><img src="images/sun.gif" width="9" height="9" align="absmiddle" /> 作者: David 发表日期: 2006-07-19 13:30:26 </td>
</tr>
<tr>
<td align="left" class="topline" style="word-break:break-all"> <table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="10"></td>
</tr> [1] => 100
) ) [1] => Array
(
[0] => Array
(
[0] => <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" >
<tr>
<td class="blogtit col1">个人空间分类</td>
</tr>
<tr>
<td align="left" valign="top" class="p10"><div class="article">
<ul>
<li>暂时没有个人空间分类</li>
</ul>
</div></td>
</tr>
</table>
[1] => 3441
) [1] => Array
(
[0] => width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"
[1] => 3447
) [2] => Array
(
[0] =>
<tr>
<td class="blogtit col1">个人空间分类</td>
</tr>
<tr>
<td align="left" valign="top" class="p10"><div class="article">
<ul>
<li>暂时没有个人空间分类</li>
</ul>
</div></td>
</tr>
[1] => 3524
) ))
我想要如果遇到<img 被截取一半的时候把这个文字一直截到 >结束
<table>也是一样一半的话就截取到</table>结束
print_r($ar);你自己看结果吧。