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

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

Используйте замену с помощью Environment.NewLine

 myString = myString.Replace(System.Environment.NewLine, "replacement text") 

Как упоминалось в других сообщениях, если строка поступает из другой среды (ОС), вам нужно будет заменить эту конкретную среду реализацией новых символов управления строкой .

Решения, опубликованные до сих пор, либо заменяют только Environment.NewLine либо они терпят неудачу, если строка замены содержит разрывы строк, потому что они вызывают string.Replace несколько раз.

Вот решение, которое использует регулярное выражение, чтобы сделать все три замены всего за один проход над строкой. Это означает, что строка замены может безопасно содержать разрывы строк.

 string result = Regex.Replace(input, @"\r\n?|\n", replacementString); 

Чтобы расширить ответ The.Anyi.9, вы также должны знать о различных типах разрыва строки в общем использовании . В зависимости от того, где был создан ваш файл, вы можете захотеть убедиться, что вы поймаете все альтернативы …

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

должен заставить вас идти …

Я бы использовал Environment.Newline, когда я хотел вставить новую строку для строки, но не для удаления всех строк строки из строки.

В зависимости от вашей платформы у вас могут быть разные типы новых строк, но даже внутри одной и той же платформы используются разные типы новых строк. В частности, когда речь идет о форматах файлов и протоколах.

 string ReplaceNewlines(string blockOfText, string replaceWith) { return blockOfText.Replace("\r\n", replaceWith).Replace("\n", replaceWith).Replace("\r", replaceWith); } 

Если ваш код должен работать в разных средах, я бы рассмотрел использование константы Environment.NewLine , так как это специально newline используемая в конкретной среде.

 line = line.Replace(Environment.NewLine, "newLineReplacement"); 

Однако, если вы получите текст из файла, происходящего из другой системы, это может быть не правильный ответ, и вы должны заменить любой константой новой строки в другой системе. Обычно это \n или \r\n .

Не забывайте, что замена не выполняет замену в строке, но возвращает новую строку с замененными символами. Ниже будут удалены разрывы строк (не заменяются). Я бы использовал метод @Brian R. Bondy, заменив их чем-то другим, возможно, завернутым в качестве метода расширения. Не забудьте сначала проверить нулевые значения перед вызовом Replace или предоставленными способами расширения.

 string line = ... line = line.Replace( "\r", "").Replace( "\n", "" ); 

В качестве методов расширения:

 public static class StringExtensions { public static string RemoveLineBreaks( this string lines ) { return lines.Replace( "\r", "").Replace( "\n", "" ); } public static string ReplaceLineBreaks( this string lines, string replacement ) { return lines.Replace( "\r\n", replacement ) .Replace( "\r", replacement ) .Replace( "\n", replacement ); } } 

Чтобы убедиться, что все возможные варианты разрывов строк (Windows, Mac и Unix) заменены, вы должны использовать:

 string.Replace("\r\n", "\n").Replace('\r', '\n').Replace('\n', 'replacement'); 

и в этом порядке, чтобы не делать лишние разрывы строк, когда вы находите какую-то комбинацию символов окончания строки.

Мне нужно было заменить \r\n фактическим возвратом каретки и подачей строки и заменить \t на фактическую вкладку. Поэтому я придумал следующее:

 public string Transform(string data) { string result = data; char cr = (char)13; char lf = (char)10; char tab = (char)9; result = result.Replace("\\r", cr.ToString()); result = result.Replace("\\n", lf.ToString()); result = result.Replace("\\t", tab.ToString()); return result; } 
 var answer = Regex.Replace(value, "(\n|\r)+", replacementString); 

Почему бы не обоим?

 string ReplacementString = ""; Regex.Replace(strin.Replace(System.Environment.NewLine, ReplacementString), @"(\r\n?|\n)", ReplacementString); 

Примечание. Замените strin на имя вашей входной строки.

Использовать метод .Replace ()

 Line.Replace("\n", "whatever you want to replace with"); 

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

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

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

Поскольку новую строку можно разграничить с помощью \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"); } 
 string s = Regex.Replace(source_string, "\n", "\r\n"); 

или

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

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

Надеюсь, это поможет.

Другой вариант – создать StringReader над рассматриваемой строкой. На читателе сделайте .ReadLine() в цикле. Затем вы разделяете строки, независимо от того, какие (последовательные или непоследовательные) разделители у них были. При этом вы можете действовать по своему усмотрению; одна из возможностей – использовать .AppendLine и вызвать .AppendLine на нем.

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

  • Как преобразовать массив объектов в строковый массив в Java
  • Способ иметь String.Replace только ударить "целые слова"
  • Использование getline () в C ++
  • Есть ли функция R, чтобы избежать строки для символов регулярных выражений
  • Как удалить одиночный символ из строки
  • Как правильно сравнить строки?
  • Как имитировать поведение автоматической пересылки стека
  • Определить кодировку строки в C #
  • Получение и удаление первого символа строки
  • Почему sizeof (string) == 32?
  • Удалить значение Null из массива String в java
  • Interesting Posts

    Скребок сети супермаркетов Аргентины

    JAX-RS Сообщение нескольких объектов

    HTTP-сервер тестирования, принимающий запросы GET / POST

    Как восстановить изображения из резервной копии MediaWiki?

    Есть ли способ найти / заменить весь проект в Eclipse?

    Как очистить буфер cin?

    Excel беспорядок с моей формулой при копировании, как я могу остановить, я перестаю менять одну часть, но не другую?

    OSX 10.11 включить ssh diffie-hellman-group1-sha1

    Почему это хорошая идея ограничить развертывание файлов в профиле пользователя или HKCU при использовании MSI?

    Безопасно ли установить Mac непосредственно в Интернет?

    Установка Inno Установка изображения / управления на пользовательской странице

    Как «Удалить производные данные» в Xcode 6 и более поздних версиях?

    Доступ к HttpSession из HttpServletRequest в веб-узле @ServerEndpoint

    В JQGrid, возможно ли использовать другой форматтер для группировки итоговой ячейки, отличной от форматирования столбцов?

    Использование библиотеки FFMPEG с iPhone SDK для кодирования видео

    Давайте будем гением компьютера.