Php 紧凑型nl2br兼顾了两者

Php 紧凑型nl2br兼顾了两者,php,regex,Php,Regex,我正在尝试创建一个与类似的函数,只是我希望此函数仅在\n没有遵循的情况下工作。我希望这些场景 *\n* -> <br> *<br>\n* -> nothing *<br>* -> nothing *\n*-> *\n*->什么都没有 **->什么都没有 我在想伪代码 if (regex !== <br>\n && regex === *<br>) if(regex

我正在尝试创建一个与类似的函数,只是我希望此函数仅在
\n
没有遵循

的情况下工作。我希望这些场景

*\n*       ->    <br>
*<br>\n*   ->   nothing
*<br>*   ->   nothing
*\n*->
*
\n*->什么都没有 *
*->什么都没有
我在想伪代码

if (regex !== <br>\n && regex === *<br>)
if(regex!=
\n&®ex===*
但是这没有意义,除非

位在正则表达式本身中。简单地说,正则表达式正在融化我的大脑,我想在正则表达式中排除正则表达式。

所以,类似于:

<?php
  $test = "This\nis\na<br>\ntest";
  $result = preg_replace('/(?<!<br>)\n/', "<br>", $test);
  print_r($result);

/n
-那应该是
\n
你说的是“ln2br”,你是说“nl2br”,对吧?@Fred ii-是的。周五晚上的打字错误…没问题。现在,
\n
是一个隐藏的(服务器)文件字符,不像HTML

是一个标记,所以我认为您试图实现的是一个相当棘手的问题。我自己也没有答案。让我们拭目以待,看看是否有人在耍花招;)我已经试着回答了,但是你可能想通过给我们一个你想从中得到的一些输入和结果输出的例子来帮助我们回答你的问题。这很好,但是我也需要它(或者一个不同的regexp)来听(新编辑的)第三种情况:
*
*->基本上没有任何内容
,因此
不会重复
This<br>is<br>a<br>
test