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

问题描述 投票:-3回答:1

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

<p>line 1 </p>
line 2 
<p> line 3 </p>
line 4 
<p> line 5 </p>
line 6

但我希望输出像这样 -

<p>line 1 </p>
<p>line 2 </p>
<p>line 3 </p>
<p>line 4 </p>
<p>line 5 </p>
<p>line 6 </p>
Thanks in advance
php regex
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.