Как удалить символ возврата каретки (\r)
и новый символ строки (\n)
из конца строки?
Удаление возврата каретки и новой строки из конца строки в С#
Ответ 1
Это позволит обрезать любую комбинацию возвратов каретки и строк новой строки с конца s
:
s = s.TrimEnd(new char[] { '\r', '\n' });
Изменить. Или, как указывает JP, вы можете записать это более кратко:
s = s.TrimEnd('\r', '\n');
Ответ 2
Это должно работать...
var tst = "12345\n\n\r\n\r\r";
var res = tst.TrimEnd( '\r', '\n' );
Ответ 3
Если вы используете несколько платформ, вы можете безопасно использовать этот метод.
value.TrimEnd(System.Environment.NewLine.ToCharArray());
Он будет учитывать разные символы новой строки и возврата каретки.
Ответ 4
String temp = s.replace("\r\n","").trim();
s
является исходной строкой.
Ответ 5
Если всегда имеется один CRLF, то:
myString = myString.Substring(0, myString.Length - 2);
Если он может иметь или не иметь его, то:
Regex re = new Regex("\r\n$");
re.Replace(myString, "");
Оба эти (по дизайну) удалят не более одного CRLF. Загрузите регулярное выражение для производительности.
Ответ 6
Для нас VBers:
TrimEnd(New Char() {ControlChars.Cr, ControlChars.Lf})
Ответ 7
s.TrimEnd();
Это все, что мне нужно, чтобы удалить '\ r\n' из конца моей строки.
Возвращенный ответ кажется мне неправильным. Во-первых, это не сработало, когда я попытался, во-вторых, если бы это сработало, я бы ожидал, что s.TrimEnd('\ r', '\n') удалит только '\ r' или '\n', поэтому мне пришлось бы запускать его по моей строке дважды - один раз, когда "\n" был в конце, а во второй раз, когда "\ r" был в конце (теперь, когда "\n" был удален),
Ответ 8
Это было слишком просто - для меня я фильтрую определенные элементы электронной почты. Я пишу собственный собственный фильтр нежелательной почты. С \r и/или\n в строке он уничтожал все элементы вместо фильтрации.
Итак, я просто сделал filter = filter.Remove('\n') и filter = filter.Remove('\ r'). Я делаю свой фильтр таким образом, чтобы конечный пользователь мог использовать Notepad для прямого редактирования файла, чтобы не сообщать, где эти символы могут вставлять себя, - может быть иначе, чем в начале или в конце строки. Поэтому удаление их всех делает это.
Другие записи все работают, но Remove может быть самым простым?
Я узнал немного больше о Regex из этого сообщения - довольно крутая работа с ее использованием здесь.
Ответ 9
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+", " ");
Ответ 10
varName.replace(/[\r\n]/mg, '')
Ответ 11
Я использую много уровней стирания
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, "");
и теперь у нас есть чистая одна строка