Làm cách nào để xóa ký tự trả về vận chuyển (\r)
và ký tự dòng mới (\n)
từ cuối chuỗi?Xóa bỏ dấu xuống dòng và dòng mới từ cuối chuỗi trong C#
Trả lời
này sẽ cắt bỏ bất kỳ sự kết hợp của kí tự xuống dòng và dòng mới từ cuối s
:
s = s.TrimEnd(new char[] { '\r', '\n' });
Sửa: Hoặc như JP vui lòng chỉ ra, bạn có thể đánh vần mà ngắn gọn hơn như:
s = s.TrimEnd('\r', '\n');
này nên làm việc ...
var tst = "12345\n\n\r\n\r\r";
var res = tst.TrimEnd('\r', '\n');
Nếu luôn có một CRLF duy nhất, sau đó:
myString = myString.Substring(0, myString.Length - 2);
Nếu nó có thể hoặc có thể không có nó, sau đó:
Regex re = new Regex("\r\n$");
re.Replace(myString, "");
Cả hai (theo thiết kế), sẽ loại bỏ tối đa là một CRLF đơn . Cache regex để thực hiện.
String temp = s.replace("\r\n","").trim();
s
là chuỗi gốc.
Điều đó cũng sẽ: 1) Xóa \ r \ n từ giữa chuỗi, 2) Xóa bất kỳ ký tự trắng nào từ đầu chuỗi và 3) xóa bất kỳ ký tự khoảng trắng nào từ cuối chuỗi. – RichieHindle
Đúng, tôi giả định chỉ có một/r/n ở cuối. Nó không được đề cập trong bài gốc. Tôi không chắc chắn rằng warrents một phiếu bầu -1 – Crash893
Chính xác những gì tôi đang tìm kiếm. Cảm ơn. – NotMe
Đối với chúng tôi VBers:
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+", " ");
varName.replace(/[\r\n]/mg, '')
Đây là quá dễ dàng - đối với tôi tôi lọc ra các email nhất định. Tôi đang viết bộ lọc email tùy chỉnh của riêng mình. Với \ r và/hoặc \ n trong chuỗi nó đã xóa sạch tất cả các mục thay vì lọc.
Vì vậy, tôi vừa lọc filter = filter.Remove ('\ n') và filter = filter.Remove ('\ r'). Tôi đang tạo bộ lọc của mình sao cho người dùng cuối có thể sử dụng Notepad để chỉnh sửa trực tiếp tệp nên không thể nói nơi những ký tự này có thể tự nhúng - có thể khác với lúc bắt đầu hoặc kết thúc chuỗi. Vì vậy, loại bỏ tất cả đều làm điều đó.
Các mục nhập khác đều hoạt động nhưng Xóa có thể dễ dàng nhất?
Tôi đã học được nhiều hơn một chút về Regex từ bài đăng này - khá thú vị khi sử dụng ở đây.
Có vẻ như bạn chỉ có thể thực hiện 'filter = filter.Remove ('\ n'). Xóa ('\ r');' –
Nếu bạn đang sử dụng nhiều nền tảng, bạn sẽ an toàn hơn khi sử dụng phương pháp này.
value.TrimEnd(System.Environment.NewLine.ToCharArray());
Nó sẽ tính đến các ký tự dòng mới và ký tự trả về.
phương thức của JP - 'tst.TrimEnd ('\ r', ' \ n ') '- là hợp lý" an toàn "trong thực tế vì các EOL chính là [hiện tại] chỉ là các combo khác nhau của' \ r' và '\ n', nhưng alexw là câu trả lời" đúng ". * Hãy để CLR cho bạn biết những ký tự nào trong dòng mới của nền tảng này. * [EOL không phải lúc nào cũng là combo 0D và 0As] (http://en.wikipedia.org/wiki/Newline#Representations) – ruffin
Tôi đã từng sử dụng 'Environment.NewLine' nhưng nó dường như không xử lý các trường hợp' \ r' hiện diện mà không có '\ n'. 'TrimEnd ('r', '\ n')' có vẻ đáng tin cậy hơn trong trường hợp này. –
Có thể đây thực sự là một vấn đề đa nền tảng, và tháng mười hai cần phải loại bỏ cụ thể cả hai \ r \ n, bất kể môi trường hệ thống nói gì. –
s.TrimEnd();
Ở trên là tất cả những gì tôi cần để xóa '\ r \ n' từ cuối chuỗi.
Câu trả lời được bỏ phiếu có vẻ sai với tôi. Thứ nhất, nó không hoạt động khi tôi cố gắng, thứ hai, nếu nó đã làm việc tôi mong đợi rằng s.TrimEnd ('\ r', '\ n') sẽ chỉ xóa hoặc là một '\ r' hoặc '\ n', vì vậy tôi phải chạy nó qua chuỗi của tôi hai lần - một lần cho thời điểm '\ n' đã ở cuối và lần thứ hai khi '\ r' ở cuối (giờ là '\ n' đã bị xóa).
tôi sử dụng rất nhiều xóa mức
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, "");
và bây giờ chúng tôi có một sạch một hàng
- 1. Xóa dòng mới khỏi cuối tệp
- 2. Xóa dòng cuối cùng khỏi chuỗi
- 3. Xóa dòng mới trong Vim
- 4. C# loại bỏ chuỗi từ cuối chuỗi
- 5. Tách dòng mới trong Haskell
- 6. Cách nhanh nhất để xóa các dòng mới khỏi một chuỗi trong C# là gì?
- 7. Xóa dòng trống cuối cùng
- 8. BASH: Strip mới dòng nhân vật từ chuỗi (đọc dòng)
- 9. So sánh chuỗi C# bỏ qua dấu cách, chuyển dòng hoặc ngắt dòng
- 10. In cùng dòng và không phải dòng mới trong python
- 11. Thêm một dòng mới vào cuối JtextArea
- 12. Java: BufferedWriter bỏ qua dòng mới
- 13. Xóa ký tự/dòng cuối cùng
- 14. xóa từ cuối dòng sử dụng khối chọn trong vim
- 15. Dấu phẩy cuối dòng nào trong Matlab?
- 16. Làm cho Python ngừng phát ra một dấu xuống dòng khi viết dòng mới vào sys.stdout
- 17. Python raw_input bỏ qua dòng mới
- 18. regex để tìm dấu phẩy thứ 4 từ cuối dòng
- 19. Thay thế dòng mới C#?
- 20. Dòng mới và trả về bị bỏ qua trong setMessageBody
- 21. Remove cuối ký tự dòng từ Java chuỗi
- 22. Loại bỏ ký tự dòng mới từ NSString
- 23. Regex phù hợp với một (\ n) xuống dòng trong C#
- 24. Xóa dấu cách khỏi đầu và cuối của chuỗi
- 25. Đọc một dòng chuỗi mỗi dòng trong C#
- 26. Định dạng nhật ký tùy chỉnh bỏ qua dòng mới ở cuối đầu ra
- 27. Làm thế nào để thoát khỏi dòng mới từ chuỗi
- 28. Chèn dòng mới vào chuỗi javascript
- 29. float: ngay trong IE7 rơi xuống một dòng mới
- 30. Đuôi dòng cuối trong C++ (hoặc R)
Hãy chú ý của từ khóa params trong việc kê khai của TrimEnd, nó cho phép bạn vượt qua nhiều trường hợp của một nhân vật thay vì của mảng. http://msdn.microsoft.com/en-us/library/w5zay9db(VS.71).aspx –
Làm thế nào về điều này: s = s.TrimEnd (System.Environment.NewLine.ToCharArray()); –
Tôi đã viết C# kể từ khi v1.0 xuất hiện (10 năm trước). Bây giờ bạn nói cho tôi biết về TrimEnd. Doh! – s15199d