正则表达式匹配HTML注释内容

时间:2012-08-21 12:09:09

标签: php regex

例如,如果我有这段代码:

<!--start-here-->
<div>My Cool Content!!!</div>
<h1>Headerrr</h1>
<!--end-here-->
<div>Other Content</div>

如何使用正则表达式来获取&lt; - start-here - &gt;之间的内容和&lt; - end-here - &gt;?

所以我的输出是:

<div>My Cool Content!!!</div>
<h1>Headerrr</h1>

4 个答案:

答案 0 :(得分:6)

/<!--start-here-->(.*?)<!--end-here--->/ims

这应该有效

答案 1 :(得分:3)

您不需要正则表达式

$str = '<!--start-here-->
        <div>My Cool Content!!!</div>
        <h1>Headerrr</h1>
        <!--end-here-->
        <div>Other Content</div>';

$return = explode('<!--start-here-->', $str);
$return = explode('<!--end-here-->', $return[1]);
$return = $return[0];

或使用正则表达式

$str = preg_match('/<!--start-here-->[\s\S]*<!--end-here-->/', $str, $return);
$return = $return[0];

答案 2 :(得分:1)

试试这个,

<!--start-here-->(.|\n)*<!--end-here-->

答案 3 :(得分:1)

这应该可以解决问题:/<!--start-here-->.*<!--end-here-->/m 像这样使用它:/<!--start-here-->.*<!--end-here-->/m.exec(htmlCode)