如何包装所有片段(不在里面)or) with?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何包装所有片段(不在里面)or) with?相关的知识,希望对你有一定的参考价值。
我有一个代码:
$html =
'<h1>Headline</h1>
That should be paragraph 1.
That should be paragraph 2.
<div>Something.</div>
That should be paragraph 3.
';
我想将其改为:
$html =
'<h1>Headline</h1>
<p>That should be paragraph 1.</p>
<p>That should be paragraph 2.</p>
<div>Something.</div>
<p>That should be paragraph 3.</p>
';
但是如何在php中实现它?
我正考虑用<p>
,</p>
或</p><p>
替换每个空行,基于打开/关闭段落的一些计数器。但这将迫使用户在每个</h1>
之后制作这样的新线。
也许一些正则表达式可以完成这项工作,而不会限制用户“你必须在</h1>
之后和<h1>
之前制作新的线条”?
方法越普遍越好。
答案
下面的负向前瞻声明该行不包含<h1>
或<div>
标签。如果是,那么它将整行的内容捕获到组1中。
^(?!.*?(?:<h1>|<div>))(.+)$
替换字符串:
<p>$1</p>
码:
<?php
$string = <<<EOT
<h1>Headline</h1>
That should be paragraph 1.
That should be paragraph 2.
<div>Something.</div>
That should be paragraph 3.
EOT;
echo preg_replace('~^(?!.*?(?:<h1>|<div>))(.+)$~m', '<p>$1</p>', $string)
?>
输出:
<h1>Headline</h1>
<p>That should be paragraph 1.</p>
<p>That should be paragraph 2.</p>
<div>Something.</div>
<p>That should be paragraph 3.</p>
以上是关于如何包装所有片段(不在里面)or) with?的主要内容,如果未能解决你的问题,请参考以下文章
如何使 Swig 正确地将在 C 中修改的 char* 缓冲区包装为 Java Something-or-other?
json 可视代码工作室Angular with Firebase片段
Android N requires the IDE to be running with Java 1.8 or later