Reemplazar saltos de línea en una cadena C#

Resuelto YonahW asked hace 16 años • 20 respuestas

¿Cómo puedo reemplazar los saltos de línea dentro de una cadena en C#?

YonahW avatar Oct 26 '08 20:10 YonahW
Aceptado

Utilice reemplazar conEnvironment.NewLine

myString = myString.Replace(System.Environment.NewLine, "replacement text"); //add a line terminating ;

Como se mencionó en otras publicaciones, si la cadena proviene de otro entorno (SO), entonces deberá reemplazar la implementación de ese entorno particular de caracteres de control de nueva línea .

Corin Blaikie avatar Oct 26 '2008 13:10 Corin Blaikie

Las soluciones publicadas hasta ahora solo reemplazan Environment.NewLineo fallan si la cadena de reemplazo contiene saltos de línea porque llaman string.Replacevarias veces.

Aquí hay una solución que usa una expresión regular para realizar los tres reemplazos en una sola pasada sobre la cadena. Esto significa que la cadena de reemplazo puede contener saltos de línea de manera segura.

string result = Regex.Replace(input, @"\r\n?|\n", replacementString);
Mark Byers avatar Nov 19 '2011 18:11 Mark Byers

Para ampliar la respuesta de The.Anyi.9, también debes tener en cuenta los diferentes tipos de salto de línea de uso general . Dependiendo de dónde se originó su archivo, es posible que desee asegurarse de captar todas las alternativas...

string replaceWith = "";
string removedBreaks = Line.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith);

debería ponerte en marcha...

ZombieSheep avatar Oct 26 '2008 13:10 ZombieSheep

Usaría Environment.Newline cuando quisiera insertar una nueva línea para una cadena, pero no para eliminar todas las nuevas líneas de una cadena.

Dependiendo de su plataforma, puede tener diferentes tipos de nuevas líneas, pero incluso dentro de la misma plataforma a menudo se utilizan diferentes tipos de nuevas líneas. En particular cuando se trata de formatos y protocolos de archivos.

string ReplaceNewlines(string blockOfText, string replaceWith)
{
    return blockOfText.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith);
}
Brian R. Bondy avatar Oct 26 '2008 13:10 Brian R. Bondy