Как удалить символ возврата каретки (\r)
и символ новой строки (\n)
из конца строки?
113
Как удалить символ возврата каретки (\r)
и символ новой строки (\n)
из конца строки?
Это обрежет любую комбинацию возврата каретки и новой строки с конца s
:
s = s.TrimEnd(new char[] { '\r', '\n' });
Изменить : Или, как любезно указывает JP, вы можете записать это более сжато как:
s = s.TrimEnd('\r', '\n');
s = s.TrimEnd()
- как говорится в документации: если trimChars имеет значение null или пустой массив, вместо этого удаляются символы пробела Unicode. - см. String.TrimEnd'\r'
и'\n'
и ничего, а не символ пробела' '
, например.Это должно работать ...
источник
Если вы используете несколько платформ, вам будет безопаснее использовать этот метод.
Он будет учитывать разные символы новой строки и возврата каретки.
источник
tst.TrimEnd( '\r', '\n' )
- достаточно "безопасен" на практике, поскольку основные EOL [в настоящее время] представляют собой просто разные комбинации\r
и\n
, но alexw - это "правильный" ответ. Позвольте CLR сказать вам, какие символы находятся в новой строке этой платформы. EOL не всегда был комбинацией 0D иEnvironment.NewLine
но, похоже, он не обрабатывал случаи, когда\r
присутствовал без\n
.TrimEnd('r','\n')
кажется более надежным в этом случае.s
исходная строка. (Обратите внимание на заглавные буквы)источник
replace()
тогдаtrim()
не излишеством , когдаTrimEnd()
может сделать работу в одиночку, или я что - то отсутствует?Вышесказанное - это все, что мне нужно, чтобы удалить '\ r \ n' из конца моей строки.
Проголосованный ответ мне кажется неправильным. Во-первых, это не сработало, когда я пытался, во-вторых, если бы это сработало, я ожидал, что s.TrimEnd ('\ r', '\ n') удалит только либо '\ r', либо '\ n' , поэтому мне пришлось бы дважды запустить его по моей строке - один раз, когда '\ n' был в конце, и второй раз, когда '\ r' был в конце (теперь, когда '\ n' был удален) .
источник
Если всегда есть один CRLF, то:
Если может, а может и не быть, то:
Оба из них (по замыслу) удаляют не более одного CRLF. Кешируйте регулярное выражение для повышения производительности.
источник
Для нас, VBers:
источник
источник
Это было слишком просто - для меня я отфильтровываю определенные сообщения электронной почты. Я пишу свой собственный фильтр нежелательной почты. С \ r и / или \ n в строке он стирал все элементы вместо фильтрации.
Итак, я только что сделал filter = filter.Remove ('\ n') и filter = filter.Remove ('\ r'). Я делаю свой фильтр таким образом, чтобы конечный пользователь мог использовать Блокнот для непосредственного редактирования файла, поэтому неизвестно, где эти символы могут встраиваться - это может быть что-то иное, кроме как в начале или в конце строки. Так что удаление их всех делает свое дело.
Все остальные записи работают, но удалить может быть проще всего?
Я узнал немного больше о Regex из этого поста - довольно крутая работа с его использованием здесь.
источник
filter = filter.Remove('\n').Remove('\r');
Я использую много стирающего уровня
и теперь у нас есть чистая строка
источник
источник
Это то, что мне нужно для работы.
источник