正则表达式在文章中找到没有html标签的句子,句子将被html段落标签包裹。怎么做?

时间:2017-02-07 14:18:39

标签: php regex

我有一篇文章,里面有内容。我想找到没有html标签的句子然后用html段标签包装它。 代码如下 -



<p>line 1 </p>
line 2 
<p> line 3 </p>
line 4 
<p> line 5 </p>
line 6
&#13;
&#13;
&#13;

但我希望输出像这样 -

&#13;
&#13;
<p>line 1 </p>
<p>line 2 </p>
<p>line 3 </p>
<p>line 4 </p>
<p>line 5 </p>
<p>line 6 </p>
&#13;
&#13;
&#13; 提前致谢

1 个答案:

答案 0 :(得分:0)

你不应该用正则表达式解析HTML。
但是如果你绝对想要,这里就是一个。

以下正则表达式将选择不使用标签的行:

^(?!<p>).*(?!<\/p>)

您可以将匹配替换为:

<p>$0</p>

See the regex demo

以下是一个例子:

$re = '/^(?!<p>).*(?!<\/p>)/m';
$str = '<p>line 1 </p>
line 2 unwrapped
<p> line 3 </p>
line 4 unwrapped
<p> line 5 </p>
line 6 unwrapped';
$subst = '<p>$0</p>';

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