文字列の末尾からキャリッジリターン文字(\r)
と改行文字を削除するにはどうすればよいですか?(\n)
12 に答える
これにより、キャリッジリターンと改行の組み合わせが次の末尾から削除されますs
。
s = s.TrimEnd(new char[] { '\r', '\n' });
編集:またはJPが親切に指摘しているように、次のように簡潔に綴ることができます。
s = s.TrimEnd('\r', '\n');
これはうまくいくはずです...
var tst = "12345\n\n\r\n\r\r";
var res = tst.TrimEnd( '\r', '\n' );
複数のプラットフォームを使用している場合は、この方法を使用する方が安全です。
value.TrimEnd(System.Environment.NewLine.ToCharArray());
さまざまな改行文字と改行文字が考慮されます。
CRLFが常に1つある場合は、次のようにします。
myString = myString.Substring(0, myString.Length - 2);
ある場合とない場合は、次のようにします。
Regex re = new Regex("\r\n$");
re.Replace(myString, "");
これらは両方とも(設計上)、多くても1つのCRLFを削除します。パフォーマンスのために正規表現をキャッシュします。
私たちVBersの場合:
TrimEnd(New Char() {ControlChars.Cr, ControlChars.Lf})
string k = "This is my\r\nugly string. I want\r\nto change this. Please \r\n help!";
k = System.Text.RegularExpressions.Regex.Replace(k, @"\r\n+", " ");
これは簡単すぎました。私にとっては、特定のメール アイテムを除外しています。独自のカスタム メール ジャンク フィルターを作成しています。文字列に \r および/または \n を使用すると、フィルタリングする代わりにすべてのアイテムを消去していました。
したがって、filter = filter.Remove('\n') と filter = filter.Remove('\r') を実行しました。エンドユーザーがメモ帳を使用してファイルを直接編集できるようにフィルターを作成しているため、これらの文字がどこに埋め込まれているかわかりません。文字列の先頭または末尾以外の可能性があります。したがって、それらをすべて削除します。
他のエントリはすべて機能しますが、Remove が最も簡単でしょうか?
この投稿から、Regex についてさらに多くのことを学びました。
varName.replace(/[\r\n]/mg, '')