596 Stimmen

Ersetzen von Zeilenumbrüchen in einer Zeichenfolge C#

Wie kann ich Zeilenumbrüche innerhalb einer Zeichenfolge in C# ersetzen?

1voto

Jeppe Stig Nielsen Punkte 57056

Eine weitere Möglichkeit ist die Erstellung eines StringReader über die betreffende Zeichenfolge. Auf dem Lesegerät machen Sie .ReadLine() in einer Schleife. Dann haben Sie die Zeilen getrennt, unabhängig davon, welche (konsistenten oder inkonsistenten) Trennzeichen sie hatten. Damit können Sie fortfahren, wie Sie wollen; eine Möglichkeit ist die Verwendung einer StringBuilder und rufen .AppendLine darauf.

Der Vorteil ist, dass Sie das Framework entscheiden lassen, was ein "Zeilenumbruch" ist.

0voto

string s = Regex.Replace(source_string, "\n", "\r\n");

o

string s = Regex.Replace(source_string, "\r\n", "\n");

je nachdem, welchen Weg Sie einschlagen wollen.

Ich hoffe, es hilft.

0voto

Tadej Punkte 5745

Wenn Sie nur die Zeilenumbrüche ersetzen wollen:

var input = @"sdfhlu \r\n sdkuidfs\r\ndfgdgfd";
var match = @"[\\ ]+";
var replaceWith = " ";
Console.WriteLine("input: " + input);
var x = Regex.Replace(input.Replace(@"\n", replaceWith).Replace(@"\r", replaceWith), match, replaceWith);
Console.WriteLine("output: " + x);

Wenn Sie Zeilenumbrüche, Tabulatoren und Leerzeichen ersetzen möchten:

var input = @"sdfhlusdkuidfs\r\ndfgdgfd";
var match = @"[\\s]+";
var replaceWith = "";
Console.WriteLine("input: " + input);
var x = Regex.Replace(input, match, replaceWith);
Console.WriteLine("output: " + x);

-1voto

MSS Punkte 3168

Basierend auf @mark-bayers Antwort und für eine sauberere Ausgabe:

string result = Regex.Replace(ex.Message, @"(\r\n?|\r?\n)+", "replacement text");

Sie beseitigt \r\n , \n y \r während längere und vereinfachte Mehrfachnennungen zu einer werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X