繁体   English   中英

在两个定界符之间分割字符串

[英]Split string between two delimiters

我想在HTML源代码的字符串匹配第<!--sliderStart-->和结束<!--sliderEnd-->

范例1:

<!--sliderStart-->
<p>blah</p>
<p>blah2</p>
<!--sliderEnd-->

范例2:

<!--sliderStart--><p>blah</p><p>blah2</p><!--sliderEnd-->

这是我的模式,但是效率不高:

$pattern = "/<!--sliderStart-->[^\n]+(.*?)<!--sliderEnd-->/";

匹配的确切模式是什么?

为什么在正则表达式中使用[^\\n]+ 这告诉正则表达式引擎匹配换行符,其中想匹配。

只需摆脱它,您就可以开始:

$pattern = "/<!--sliderStart-->(.*?)<!--sliderEnd-->/s";

更新 :不要忘了最后加上s修饰符,以便使用. 也匹配换行符。
谢谢@钯。

除非您告诉正则表达式点,否则它们不与换行符匹配。 您需要在正则表达式的末尾添加一个s修饰符,如下所示:

$pattern = '/<!--sliderStart-->(.*?)<!--sliderEnd-->/s';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM