你好,我想使用的preg_match在PHP解析“所需的文本”了,从一个html文档以下的的Preg匹配文本
<p class="review"> Desired text </p>
通常我会用这样的事情simple_html_dom但在这种情况下,它不能被使用(上面的元素不会出现在每个需要的div标签中,所以我不得不使用这种方法来跟踪它何时不出现,然后相应地调整我的数组从simple_html_dom) 。
无论如何,这将解决我的问题。
非常感谢。
你好,我想使用的preg_match在PHP解析“所需的文本”了,从一个html文档以下的的Preg匹配文本
<p class="review"> Desired text </p>
通常我会用这样的事情simple_html_dom但在这种情况下,它不能被使用(上面的元素不会出现在每个需要的div标签中,所以我不得不使用这种方法来跟踪它何时不出现,然后相应地调整我的数组从simple_html_dom) 。
无论如何,这将解决我的问题。
非常感谢。
preg_match("'<p class=\"review\">(.*?)</p>'si", $source, $match);
if($match) echo "result=".$match[1];
如果你匹配的字符串有多条线路是:
<p class="review"> Desired text1 </p>
<p class="review"> Desired text2 </p>
<p class="review"> Desired text3 </p>
这种模式将匹配一次,这场比赛将是字符串中的一切。
我想一个更好的模式是:
"'<p class=\"review\">([^<]*)</p>'si"
是的,谢谢,我一直在尝试过去2小时的东西,我终于意识到股票正在用JavaScript显示,页面加载后:(((那么,那么,这就是为什么该脚本不工作谢谢所有 – 2012-08-09 09:57:51
绝对是正确的答案。 – user1645377 2016-04-28 09:04:56
需要使用preg_match_all()。然后循环遍历第二个结果组($ match [1])以获取标签之间的内容。
$source = "<p class=\"review\"> Desired text1 </p>".
"<p class=\"review\"> Desired text2 </p>".
"<p class=\"review\"> Desired text3 </p>";
preg_match_all("'<p class=\"review\">(.*?)</p>'si", $source, $match);
foreach($match[1] as $val)
{
echo $val."<br>";
}
Outputs:
Desired text1
Desired text2
Desired text3
完美的作品。为我节省了几个小时,非常感谢。 – 2009-10-19 03:11:39
不客气:) – serg 2009-10-19 03:14:55
这难道不会超越吗?请参阅下面的答案。 – 2010-03-03 05:17:23