Заменить разрывы строк в строке C # - PullRequest
464 голосов
/ 26 октября 2008

Как заменить разрывы строк внутри строки в C #?

Ответы [ 17 ]

4 голосов
/ 12 октября 2010
var answer = Regex.Replace(value, "(\n|\r)+", replacementString);
2 голосов
/ 24 сентября 2012

Поскольку новую строку можно разделить \n, \r и \r\n, сначала мы заменим \r и \r\n на \n, и только затем разделим строку данных.

Следующие строки должны идти к методу parseCSV:

function parseCSV(data) {
    //alert(data);
    //replace UNIX new lines
    data = data.replace(/\r\n/g, "\n");
    //replace MAC new lines
    data = data.replace(/\r/g, "\n");
    //split into rows
    var rows = data.split("\n");
}
2 голосов
/ 08 сентября 2010

Лучший способ безопасно заменить разрывы строк -

yourString.Replace("\r\n","\n") //handling windows linebreaks
.Replace("\r","\n")             //handling mac linebreaks

, которая должна создавать строку с \ n (например, переводом строки) в качестве переноса строки. этот код также полезен для исправления смешанных разрывов строк.

2 голосов
/ 26 октября 2008

Используйте метод .Replace ()

Line.Replace("\n", "whatever you want to replace with");
0 голосов
/ 07 декабря 2009
string s = Regex.Replace(source_string, "\n", "\r\n");

или

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

в зависимости от того, куда вы хотите идти.

Надеется, что это поможет.

0 голосов
/ 04 июня 2019

Если вы хотите заменить только новые строки:

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

Если вы хотите заменить символы новой строки, табуляции и пробелы:

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);
0 голосов
/ 20 февраля 2018

Другой вариант - создать StringReader над рассматриваемой строкой. На ридере выполните .ReadLine() в цикле. Тогда у вас есть разделенные линии, независимо от того, какие (последовательные или непоследовательные) разделители у них были. С этим вы можете действовать как хотите; одна из возможностей - использовать StringBuilder и вызвать .AppendLine на нем.

Преимущество состоит в том, что вы позволяете платформе решать, что представляет собой "разрыв строки".

...