我有一些像这样的HTML:
<p>Lorem ipsum</p>
Dolor sit amet
<br><br>
consectetur
<p>adipiscing</p>
<br>elit.
我试图将它分成两部分,最后得到这个:
Array(
[0] => <p>Lorem ipsum</p>
Dolor sit amet
[1] => <br><br>
consectetur
<p>adipiscing</p>
<br>elit.
)
这个想法是让第一个数组元素包含前两个“段落”。 “段落”是指“p”标签内的文字,或两个连续“br”标签后的文字。
答案 0 :(得分:2)
也许这种模式:/(<\s*p\s*\/?>)|(<\s*br\s*\/?>)/
会对你有帮助吗?请参阅demo
答案 1 :(得分:0)
您需要按字符串的形状将字符串拆分。 preg_split会被正则表达式拆分,虽然有可能,我怀疑它不是你需要的。
以下是两个<br>
代码分割
$my_string = '<p>Lorem ipsum</p>
Dolor sit amet
<br><br>
consectetur
<p>adipiscing</p>
<br>elit.';
$split_string = explode('<br><br>', $my_string);
这将作为数组输出
echo $split_string[0];
echo $split_string[1];
答案 2 :(得分:0)
不是100%确定s模式修饰符是必要的,但这应该有效,并按照指定捕获第二个值中的<br><br>
。
$result_array = preg_split("/(?=<br><br>)/is", $my_string);