正则提取html标签求助

tmWin32 2009-03-08 12:12:07
如何用正则表达式提取id=“a”的<div>中的内容~?
我用了递归匹配去提取还是提取不出来,有哪位达人能给点提示吗??
...全文
112 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tmWin32 2009-03-11
  • 打赏
  • 举报
回复
问题我已经解决了~~ 我把我的解答贴上来!
楼上的那些貌似都没有考虑到有嵌套的情况~ 还有正文中也有可能出现 < >这符号!
还是很感谢大家的热心帮助。

$match_name = '/(<div[^>]*id=\"name\"[^>]*>)(([^<]+|<(?!\/?div[^>]*>)|<div[^>]*>(?>(?3))*<\/div>)*)(<\/div>)/si';
preg_match_all($match_name,$html,$matches);


  • 打赏
  • 举报
回复
$re1="/<div id=\"a\">([^<]+)<\/div>/i";
$str1="<div id=\"a\">444444</div>dgdgdgdfg<div id=\"a\">fhfhfh</div>dgdgdgdfg<div id=\"a\">f7777fh</div>646hfh<div id=\"a\">fgdfggdfgh</div>dgdgdgdfg<div id=\"a\">f80llfh</div>";
preg_match_all("".$re1."",$str1,$matches);
foreach($matches[1] as $key=>$value)
{
echo $value."<br>";
}
  • 打赏
  • 举报
回复
$re="/<div id=\"a\">([^<]+)<\/div>/i";
$str="<div id=\"a\">444444</div>dgdgdgdfg";
preg_match_all("".$re."",$str,$matches);
print_r($matches);
  • 打赏
  • 举报
回复
<?php
preg_match_all("/<div\ id=\"a\">([^<]+)</a>/i",'<div id="a">444444</a>dgdgdgdfg',$matches);
print_r($matches);
?>
mier963 2009-03-09
  • 打赏
  • 举报
回复
返回的$matches数组里包含了一些匹配的结果 你可以自己研究一下 或者把页面发给我我帮你写个完整的
mier963 2009-03-09
  • 打赏
  • 举报
回复
你试试这个:
<?php
preg_match_all('@<div\ id=\"a\">(.*)</a>@','<div id="a">444444</a>',$matches);
print_r($matches);
?>

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧