Удаление возврата каретки и новой строки из конца строки в c#
-
22-08-2019 - |
Вопрос
Как мне удалить символ возврата каретки (\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, '')