「正規表現」を使用してPHPの\n
OR \r
OR IN出力を出力するにはどうすればよいですか?\n\r
バックラッシュは2倍にすべきだとわかっているのですが、できませんでした。
マイコード
preg_replace('/(\n|\r)/', '?', $String );
使用するだけstr_replace()
- 正規表現は必要ありません:
$H = str_replace( "\n", '\n', $H);
$H = str_replace( "\r", '\r', $H);
または、Mark が指摘するように、1 回の呼び出しで:
$H = str_replace( array( "\n", "\r"), array( '\n', '\r'), $H);
または、次の 2 つの不要な正規表現を使用します。
$H = preg_replace( "/\n/", '\n', $H);
$H = preg_replace( "/\r/", '\r', $H);
または、1 つの正規表現といくつかの追加ロジック:
$H = preg_replace_callback( "/(\n|\r)/", function( $match) {
return $match[1] == "\n" ? '\n' : '\r';
}, $H);
これを試してください、これはあなたが探しているものかもしれません...
$String = preg_replace('/\\n/', '\\n', $String );
echo preg_replace('/\\r/', '\\r', $String );
これはあなたが出力しようとしているものですか?
$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' を出力するために RegEx は必要ありません。
二重引用符で囲まれた文字列エスケープを二重バックスラッシュするか、リテラルを出力する文字列を単一引用符で囲みます。