在标题中可以看到,这里是HTML代码示例:
<body>
<!--CODE_START-->
<p>I <strong>Want</strong> this</p>
<p>And this one too</p>
<!--CODE_STOP-->
<p>This sould be go to trash</p>
<!--CODE_START-->
<p>This one should be included too</p>
<!--CODE_STOP-->
问题是,我想要<!--CODE_START-->
和<!--CODE_STOP-->
内的所有内容,所以结果应为:
<p>I <strong>Want</strong> this</p>
<p>And this one too</p>
和<p>This one should be included too</p>
我尝试使用此/<!--CODE_START-->([^<]*)<!--CODE_STOP-->/
和/<!--CODE_START-->(.*)<!--CODE_STOP-->/
以及su
,imu
,im
等模式修饰符的组合,它将无效,只需返回空数组。而且,我试图抓住它的完整HTML页面。
提前致谢。
答案 0 :(得分:4)
[^<]
表示一切不是&lt;,显然它会在&lt; p&gt;处失败。只需抓住所有内容并使用非贪婪选项:
preg_match_all('/<!--CODE_START-->(.*)<!--CODE_STOP-->/sU', $foo);