preg_replace \ n in string

时间:2011-07-05 08:12:22

标签: php preg-replace

出于某种原因:preg_replace("/\\n/", "<br />", $string);无效。

即使在preg替换之后,字符串也会以这种格式输出:blah blah blah\nblah blah blah

我想做的就是改变<br />

nl2br()也不起作用,但正如其正文一样,我不确定是否应该这样做。

由于

**更新**

preg_replace适用于字符串中的单词。 :(

3 个答案:

答案 0 :(得分:8)

如果您要替换文字\n而不是实际新行,请尝试:

<?php
echo preg_replace("/\\\\n/", "<br />", 'Hello\nWorld');

注意反斜杠的数量。双引号括起的字符串/\\\\n/由PHP引擎解释为/\\n/。传递给preg引擎时,此字符串被解释为文字\n

请注意,两个PHP都会将"\n"解释为ASCII字符0x0A。同样,preg引擎会将'/\n/'解释为换行符(不完全确定哪一个)。

答案 1 :(得分:7)

试试这个

str_replace("\n", "<br />", $string);

答案 2 :(得分:4)

您是否尝试在RegEx上使用多行修饰符?

preg_replace("/\\n/m", "<br />", $string);