Php “显示”\n\r";通过加倍齿隙来提高输出

Php “显示”\n\r";通过加倍齿隙来提高输出,php,regex,newline,Php,Regex,Newline,如何使用“正则表达式”在PHP的输出中输出\n或\r或\n\r 我知道反冲应该加倍,但我做不到 我的代码 preg_replace('/(\n|\r)/', '?', $String ); 只需使用-您不需要正则表达式: $H = str_replace( "\n", '\n', $H); $H = str_replace( "\r", '\r', $H); 或者正如马克指出的,在一次通话中: $H = str_replace( array( "\n", "\r"), array( '\n'

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

我知道反冲应该加倍,但我做不到

我的代码

preg_replace('/(\n|\r)/', '?', $String );
只需使用-您不需要正则表达式:

$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);
只需使用-您不需要正则表达式:

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

这就是你想要输出的吗

$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'


只需双反斜杠双引号字符串转义或单引号字符串就可以输出文本。

这就是您要输出的内容吗

$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'


只需双反斜杠双引号字符串转义或单引号字符串就可以输出文本。

试试这个,这可能就是您想要的

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

试试这个,这可能就是你想要的

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

我不太明白你想做什么?输出什么?替换什么?什么是
$H
?您希望preg\u replace的结果是什么?对不起,我不能完全理解您的问题。是要将字符串中的所有\n和\r替换为“?”。行分隔符与平台无关。您在哪个平台上?为什么需要替换这些临时的?顺便说一句,windows行分隔符是“\r\n”而不是“\n\r”。。。也请注意双引号。我想把反冲翻一番。。如果使用字符串\n,请将其替换为\\n,以便在输出中为用户显示“\n”。。如果使用,\r替换为\\rI不太明白您要做什么?输出什么?替换什么?什么是
$H
?您希望preg\u replace的结果是什么?对不起,我不能完全理解您的问题。是要将字符串中的所有\n和\r替换为“?”。行分隔符与平台无关。您在哪个平台上?为什么需要替换这些临时的?顺便说一句,windows行分隔符是“\r\n”而不是“\n\r”。。。也请注意双引号。我想把反冲翻一番。。如果使用字符串\n,请将其替换为\\n,以便在输出中为用户显示“\n”。。如果使用\r replace with\\r,您甚至不需要执行str\u replace两次:$H=str\u replace(数组(“\n”、“\r”)、数组(“\n”、“\r”)、$H;我可以用preg_Replace替换它而不用str_Replace吗?@nickb他可能会接受你的最终解决方案。。。我认为这篇文章需要将标题改为“regex手淫”。你甚至不需要执行str_replace两次:$H=str_replace(数组(“\n”、“\r”)、数组(“\n”、“\r”)、$H);我可以用preg_Replace替换它而不用str_Replace吗?@nickb他可能会接受你的最终解决方案。。。我认为这篇文章需要把标题改为“regex手淫”。