怪我说得不够清楚:我的意思是,有一个HTML字符串(随机),我现在知道了在这个字符串中的一个表格(TABLE)中的包含的内容,我如何写出Regular Expression,来取得该内容所属最内层的TABLE的HTML代码?例如:
<table ...>
<tr><td>
<table ...><tr><td>程序员大本营</td></tr></table>
</td></tr>
</table>如果我只知道“程序员大本营”,现在想取得包含它的最内层的表格HTML代码,如何写Regular Expression(规则表达式)?谢谢了。
<table ...>
<tr><td>
<table ...><tr><td>程序员大本营</td></tr></table>
</td></tr>
</table>如果我只知道“程序员大本营”,现在想取得包含它的最内层的表格HTML代码,如何写Regular Expression(规则表达式)?谢谢了。
解决方案 »
- 为什么在服务器上面调用始终是unknown host
- 哪个高手帮忙解决一下 谢谢!
- PHP与ASP.net哪个前途最好?
- php基础
- php里调用php文件 发生数据库错误?
- 菜鸟请教php关于页面传值的问题
- (2)请“ xuzuning(唠叨)”兄弟进来领剩余200分,顺便表达谢意!(300分求解关于php.ini的问题,已经解决,同时感谢参与者)
- 高分请教如何生成报表?
- 求救!在php中怎样获得checkbox提交的值!
- tp连接数据出现Undefined class constant 'MYSQL_ATTR_INIT_COMMAND'
- 发邮件出错了??
- 急问:php 程序在nt环境与linux环境的区别
$string = "adsf<table ...>
<tr><td>
<table ...><tr><td>程序员大本营
</td></tr></table>
</td></tr>
</table>adsf";
$string=preg_replace("/.*?(<table.*程序员大本营.*<\/table>).*?/Uis","\\1",$string);
echo "<xmp>".$string;
?>
<tr><td>
<table ...>
<tr><td>程序员大本营</td></tr>
<tr><td><table><tr><td>adsf</td></tr></table></td></tr>
</table>
</td></tr>
</table>返回值如下:
<table ...><tr><td>程序员大本营
</td></tr><tr><td><table><tr><td>adsf</td></tr></table>应该返回值:
<table ...>
<tr><td>程序员大本营</td></tr>
<tr><td><table><tr><td>adsf</td></tr></table></td></tr>
</table>真的麻烦诸位了。
$string="adsf<table ...>
<tr><td>
<table ...>
<tr><td>程序员大本营</td></tr>
<tr><td><table><tr><td>adsf</td></tr></table></td></tr>
</table>
</td></tr>
</table>";
function lastPos($str,$son,$p=0){
while(($m=strpos($str,$son,$p))!==false)
$p=$m+1;
return ($p>=1)?$p-1:false;
}
$pos=strpos($string,"程序员大本营");
$str1=substr($string,0,$pos);
$str2=substr($string,$pos);
while(($p=lastPos($str1,"<table"))<(lastPos($str1,"</table>"))){
$str1=substr($str1,0,$p);
}
while(1){
$pos1=strpos($str2,"<table",$q);
$pos2=strpos($str2,"</table>",$q);
if(!$pos1&&$pos2){break;}
else $q=$pos2+8;
}
echo "<xmp>".substr($string,$p,$pos-$p).substr($str2,0,$pos2+8);
?>
http://www.jazarsoft.com/php/view.php3?id=2
$str="adsf<table ...>\n<tr><td>\n<table>....</table><table ...><tr><td>程序员大本营</td></tr></table>....<table><tr><td>adsf</td></tr></table></td></tr></table></td></tr></table>";
preg_match("/.*(<table.*?程序员大本营.*?<\/table>)/isx",$str,$nn);
echo $nn[1];
?>