用<p>换行,直到出现第一个<p>

时间:2019-06-06 17:27:15

标签: php regex dom preg-replace html-manipulation

如何从文本开头将其包装在字符串中,直到出现第一个<p>为止?例如,如果字符串是

this is some <b>text</b><p>Beginning of a paragraph</p>

我想要

<p>this is some <b>text</b></p><p>Beginning of a paragraph</p>

有什么方法可以做到这一点?谢谢!

3 个答案:

答案 0 :(得分:2)

也许尝试

$str = '<p>' . preg_replace('#<p>#', '</p>\0', $str, 1);

答案 1 :(得分:0)

也许使用这样的东西:

str_replace(".","</p>.<p>", $myText);

答案 2 :(得分:0)

如果我们的输入与问题中的输入一样简单,我们将从一个简单的表达式和一个preg_replace开始:

$re = '/(.+?)(<p>.+?<\/p>)/m';
$str = 'this is some <b>text</b><p>Beginning of a paragraph</p>';
$subst = '<p>$1<\/p>$2';

$result = preg_replace($re, $subst, $str);

echo $result;

Demo

输出

<p>this is some <b>text</b><\/p><p>Beginning of a paragraph</p>

RegEx电路

jex.im可视化正则表达式:

enter image description here