我正在尝试创建一个类似于nl2br的函数,除非我希望此函数仅在\n
不跟随<br />
时才有效。我希望这些场景
*\n* -> <br>
*<br>\n* -> nothing
*<br>* -> nothing
在伪代码中我 思考;
if (regex !== <br>\n && regex === *<br>)
但除非!<br>
位在正则表达式本身内,否则这没有意义。简单地说正则表达式正在融化我的大脑,弄清楚在正则表达式中排除正则表达式。
答案 0 :(得分:1)
所以,比如:
<?php
$test = "This\nis\na<br>\ntest";
$result = preg_replace('/(?<!<br>)\n/', "<br>", $test);
print_r($result);
结果:
This<br>is<br>a<br> test
这会使用regular expression feature called "negative lookbehind"来查看换行符是否在其前面有<br>
。