Удаление возврата каретки и новой строки из конца строки в c#

StackOverflow https://stackoverflow.com/questions/873043

Вопрос

Как мне удалить символ возврата каретки (\r) и символ новой строки(\n) с конца строки?

Это было полезно?

Решение

Это приведет к отсечению любой комбинации возвратов каретки и перевода строк с конца s:

s = s.TrimEnd(new char[] { '\r', '\n' });

Редактировать:Или, как любезно указывает Джей Пи, вы можете сформулировать это более кратко как:

s = s.TrimEnd('\r', '\n');

Другие советы

Это должно сработать ...

var tst = "12345\n\n\r\n\r\r";
var res = tst.TrimEnd( '\r', '\n' );

Если вы используете несколько платформ, вам безопаснее использовать этот метод.

value.TrimEnd(System.Environment.NewLine.ToCharArray());

Он будет учитывать различные символы перевода строки и возврата каретки.

String temp = s.replace("\r\n","").trim();

s являющийся исходной строкой.

s.TrimEnd();

Вышесказанное - это все, что мне было нужно, чтобы удалить ' \ n' из конца моей строки.

Поддержанный ответ кажется мне неправильным.Во-первых, это не сработало, когда я попытался, во-вторых, если бы это сработало, я бы ожидал, что s.TrimEnd(' ', '\ n') только удалит либо a ' ' или a '\ n', так что мне пришлось бы дважды прогнать его по моей строке - один раз, когда ' ' было в конце, и второй раз, когда ' ' было в конце (теперь, когда ' ' был удален).

Если всегда существует один CRLF, то:

myString = myString.Substring(0, myString.Length - 2);

Если у него может быть это, а может и не быть, то:

Regex re = new Regex("\r\n$");
re.Replace(myString, "");

Оба из них (по замыслу) удалят не более одного CRLF.Кэшируйте регулярное выражение для повышения производительности.

Для нас , веберов:

TrimEnd(New Char() {ControlChars.Cr, ControlChars.Lf})
string k = "This is my\r\nugly string. I want\r\nto change this. Please \r\n help!";
k = System.Text.RegularExpressions.Regex.Replace(k, @"\r\n+", " ");

Это было слишком просто - для меня я отфильтровываю определенные элементы электронной почты.Я пишу свой собственный пользовательский фильтр нежелательной почты.Используя и / или \ n в строке, он удалял все элементы вместо фильтрации.

Итак, я просто сделал filter = filter.Remove(' ') и filter = filter.Remove(' ').Я создаю свой фильтр таким образом, чтобы конечный пользователь мог использовать Notepad для непосредственного редактирования файла, поэтому невозможно сказать, куда могут встроиться эти символы - не в начало или конец строки.Так что удаление их всех делает свое дело.

Все остальные записи работают, но Удалить может быть проще всего?

Я узнал совсем немного больше о регулярном выражении из этого поста - довольно классная работа с его использованием здесь.

Я использую много уровней стирания

String donen = "lots of stupid whitespaces and new lines and others..."

//Remove multilines
donen = Regex.Replace(donen, @"^\s+$[\r\n]*", "", RegexOptions.Multiline);
//remove multi whitespaces
RegexOptions options = RegexOptions.None;
Regex regex = new Regex("[ ]{2,}", options);
donen = regex.Replace(donen, " ");
//remove tabs
char tab = '\u0009';
donen = donen.Replace(tab.ToString(), "");
//remove endoffile newlines
donen = donen.TrimEnd('\r', '\n');
//to be sure erase new lines again from another perspective
donen.Replace(Environment.NewLine, "");

и теперь у нас есть чистый один ряд

varName.replace(/[\r\n]/mg, '')                                              
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top