首页 > 解决方案 > preg_replace 有时会忽略换行符?

问题描述

我想用一个换行符和两个空格替换<br>它周围的所有空格。\n

这是我尝试使用正则表达式的示例:

preg_replace('#\s*<br>\s*#', "\n  ", "Der\n <br>      Hund");

我期待这个:

在此处输入图像描述

但相反,我得到了这个:

在此处输入图像描述

这表明它<br>被两个空格取代,但不是换行符。

<br>如果我更改正则表达式,使其在它神奇地起作用之前不匹配空格:

preg_replace('#<br>\s*#', "\n  ", "Der\n <br>      Hund");

我得到了预期:

在此处输入图像描述

为什么第一个正则表达式没有按预期工作?我正在使用 PHP 7.2.24。

标签: phpregex

解决方案


推荐阅读