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

Как удалить символ возврата каретки (\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, "");

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