在一个示例字符串中,如下所示:
<ul>
<li><a href="#">Foo</a></li>
<li><a href="#">Foo</a></li>
<li><a href="#">Foo</a></li>
</ul>
<ul>
<li><a href="#">Bar</a></li>
<li><a href="#">Bar</a></li>
<li><a href="#">Bar</a></li>
</ul>
<ul>
<li><a href="#">Bum</a></li>
<li><a href="#">Bum</a></li>
<li><a href="#">Bum</a></li>
</ul>
<ul>
<li><a href="#">Barf</a></li>
<li><a href="#">Barf</a></li>
<li><a href="#">Barf</a></li>
</ul>
Timpreg_match()
使用惰性量词和前瞻的模式需要 432 步才能完成。它还依赖于字符串中实际存在双换行符序列的事实(如果双换行符不存在,它将无法匹配)。
我想我会推荐一种不同的技术。在您的字符串上使用preg_replace()
更简单(贪婪)的模式。
代码:(演示)
preg_replace('/\R{2}.*/s', '', $html)
无论字符串中是否出现双换行符序列,它不仅返回所需的输出,而且该模式只需要7步。这就是我将在我的项目中使用的。
\R
匹配不同操作系统上的换行符序列。
s
s 模式修饰符告诉正则表达式引擎在与通配符匹配时包含换行符.
。