在输出中显示“\ n \ r”通过加倍反弹

时间:2012-10-30 16:59:49

标签: php regex newline

如何使用“正则表达式”输出\n\r\n\r输出PHP?

我知道反弹应该是双倍但我不能这样做。

我的代码

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

3 个答案:

答案 0 :(得分:3)

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

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

正如Mark在一次电话中指出的那样:

$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);

答案 1 :(得分: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';

您不需要RegEx输出文字' \ n' ' \ r'或者' \ r \ n'。

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

答案 2 :(得分:0)

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

$String = preg_replace('/\\n/', '\\n', $String ); 
echo preg_replace('/\\r/', '\\r', $String );