Jak usunąć znak powrotu karetki (\r)
i znak nowego wiersza (\n)
z końca ciągu?
c#
string
newline
carriage-return
Avik
źródło
źródło
s = s.TrimEnd()
- jak mówią dokumenty: Jeśli trimChars ma wartość null lub pustą tablicę, zamiast tego usuwane są białe znaki Unicode. - patrz String.TrimEnd'\r'
i'\n'
nic więcej,' '
na przykład nie znak spacji .To powinno działać ...
źródło
Jeśli korzystasz z wielu platform, bezpieczniej jest używać tej metody.
Uwzględnia różne znaki nowej linii i powrotu karetki.
źródło
tst.TrimEnd( '\r', '\n' )
- jest w praktyce dość „bezpieczna”, ponieważ główne EOL to [obecnie] tylko różne kombinacje\r
i\n
, ale alexw jest „właściwą” odpowiedzią. Niech CLR powie ci, jakie znaki są w nowej linii tej platformy. EOL nie zawsze był kombinacją 0D i 0AsEnvironment.NewLine
ale wydawało się, że nie obsługuje przypadków, w których\r
był obecny bez\n
.TrimEnd('r','\n')
wydaje się być bardziej wiarygodny w tym przypadku.s
będący oryginalnym ciągiem. (Uwaga wielkie litery)źródło
replace()
wtedytrim()
nie przesada, kiedyTrimEnd()
mogą zrobić same zadania, albo ja czegoś brakuje?Powyższe jest wszystkim, czego potrzebowałem, aby usunąć „\ r \ n” z końca mojego ciągu.
Głosowana odpowiedź wydaje mi się błędna. Po pierwsze, to nie działa, gdy próbowałem, po drugie, jeśli to nie działa Spodziewam się, że s.TrimEnd ( „\ r”, „\ n”) by usunąć tylko albo do „\ r” lub „\ n” , więc musiałbym dwukrotnie przejechać przez mój ciąg - raz, gdy „\ n” był na końcu, a drugi raz, gdy „\ r” był na końcu (teraz, gdy „\ n” zostało usunięte) .
źródło
Jeśli zawsze występuje jeden CRLF, to:
Jeśli może, ale nie musi, to:
Oba (zgodnie z projektem) usuwają co najwyżej jeden CRLF. Buforuj wyrażenie regularne w celu zwiększenia wydajności.
źródło
Dla nas VBers:
źródło
źródło
To było zbyt proste - dla mnie odfiltrowuję określone elementy wiadomości e-mail. Piszę własny niestandardowy filtr niechcianych wiadomości e-mail. Z \ r i / lub \ n w ciągu znaków, zamiast filtrowania, wymazywał on wszystkie elementy.
Właśnie zrobiłem filter = filter.Remove ('\ n') i filter = filter.Remove ('\ r'). Tworzę filtr w taki sposób, aby użytkownik końcowy mógł używać Notatnika do bezpośredniej edycji pliku, więc nie wiadomo, gdzie te znaki mogą się osadzić - może być inne niż na początku lub na końcu ciągu. Więc usunięcie ich wszystkich robi to.
Pozostałe wpisy działają, ale Usuń może być najłatwiejszy?
Dowiedziałem się trochę więcej o Regex z tego postu - całkiem fajna praca z jego użyciem tutaj.
źródło
filter = filter.Remove('\n').Remove('\r');
Używam dużo poziomu wymazywania
a teraz mamy czysty jeden rząd
źródło
źródło
To jest to, co mam do pracy.
źródło