1

例如,如果我有以下代码:

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

如何使用正则表达式来获取 <--start-here--> 和 <--end-here--> 之间的内容?

所以我的输出是:

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

4 回答 4

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

这应该工作

于 2012-08-21T12:15:33.530 回答
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];
于 2012-08-21T12:13:36.917 回答
1

试试这个,

<!--start-here-->(.|\n)*<!--end-here-->
于 2012-08-21T12:15:07.040 回答
1

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

于 2012-08-21T12:15:15.247 回答