PHP拆分字符串而不会丢失定界符

时间:2018-08-09 08:19:27

标签: php

我有一个字符串,我想用

分隔符将其拆分为数组。 但是我不想失去这些定界符,我希望它们成为数组的一部分。

我的字符串如下:

$str = "<h3>hello</h3>this is my test and <h3><span>bye</span></h3>";

我想达到的是这样:

array(
    '<h3>hello</h3>',
    'this is my test and ',
    '<h3><span>bye</span></h3>'
);
enter code here

有什么办法吗?

感谢您的提前帮助。

1 个答案:

答案 0 :(得分:3)

您可以将preg_splitPREG_SPLIT_DELIM_CAPTURE选项一起使用:

$arr = preg_split('/(<h3>.*?<\/h3>)/', $str, -1, PREG_SPLIT_DELIM_CAPTURE);

您可能还希望包含PREG_SPLIT_NO_EMPTY选项,这样当两个<h3>块彼此相邻或在字符串的开头或结尾时,您不会得到空值,即< / p>

$arr = preg_split('/(<h3>.*?<\/h3>)/', $str, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);

Demo on 3v4l.org