1

我如何使用“正则表达式”输出 PHP 的\nOR \rOR IN 输出?\n\r

我知道反弹应该是双重的,但我做不到。

我的代码

preg_replace('/(\n|\r)/', '?', $String );
4

3 回答 3

4

只需使用str_replace()- 您不需要正则表达式:

$H = str_replace( "\n", '\n', $H);
$H = str_replace( "\r", '\r', $H);

或者正如马克指出的那样,在一次通话中:

$H = str_replace( array( "\n", "\r"), array( '\n', '\r'), $H);

或者,使用两个不必要的正则表达式:

$H = preg_replace( "/\n/", '\n', $H);
$H = preg_replace( "/\r/", '\r', $H);

或者,一个正则表达式和一些额外的逻辑:

$H = preg_replace_callback( "/(\n|\r)/", function( $match) {
    return $match[1] == "\n" ? '\n' : '\r';
}, $H);
于 2012-10-30T17:02:06.790 回答
0

这是您要输出的内容吗?

$H = "This is a line with \\n and \\r  and \\r\\n";
$H = "This is a line with " . '\n and ' . '\r and ' . '\r\n'; 

或者简单地单引号整个字符串,这样 php 就不会评估转义...

$H = 'This is a line with \n and  \r and  \r\n';

您不需要正则表达式来输出文字 '\n' '\r' 或 '\r\n'。

只需双反斜杠双引号字符串转义或单引号要输出文字的字符串。

于 2012-10-30T17:17:14.353 回答
0

试试这个,这可能就是你要找的...

$String = preg_replace('/\\n/', '\\n', $String ); 
echo preg_replace('/\\r/', '\\r', $String );
于 2012-10-30T17:20:49.380 回答