Tôi cần một TextBox trên một điều khiển WPF có thể lấy trong văn bản như Commit\r\n\r
(đó là chuỗi .net "Commit\\r\\n\\r"
) và chuyển đổi nó thành "Commit\r\n\r"
dưới dạng chuỗi .net. Tôi đã hy vọng cho một cặp string.Unescape() và string.Escape() phương pháp, nhưng nó dường như không tồn tại. Tôi sẽ phải viết của riêng tôi? hoặc là có một cách đơn giản hơn để làm điều này?Làm cách nào để bỏ chuỗi Unescape và Reescape trong .net?
Trả lời
Mã của Hans, phiên bản cải tiến.
- Made nó sử dụng StringBuilder - một tăng cường hiệu suất thực trên dây dài
Made nó trở thành một phương pháp khuyến nông
public static class StringUnescape { public static string Unescape(this string txt) { if (string.IsNullOrEmpty(txt)) { return txt; } StringBuilder retval = new StringBuilder(txt.Length); for (int ix = 0; ix < txt.Length;) { int jx = txt.IndexOf('\\', ix); if (jx < 0 || jx == txt.Length - 1) jx = txt.Length; retval.Append(txt, ix, jx - ix); if (jx >= txt.Length) break; switch (txt[jx + 1]) { case 'n': retval.Append('\n'); break; // Line feed case 'r': retval.Append('\r'); break; // Carriage return case 't': retval.Append('\t'); break; // Tab case '\\': retval.Append('\\'); break; // Don't escape default: // Unrecognized, copy as-is retval.Append('\\').Append(txt[jx + 1]); break; } ix = jx + 2; } return retval.ToString(); } }
FYI hàm được liệt kê có tên sai - nó là/unescaping/một chuỗi, nhưng được gọi là EscapeStringChars(). – redcalx
System.Text.RegularExpressions.Regex.Unescape(@"\r\n\t\t\t\t\t\t\t\t\tHello world!")
System.Text.RegularExpressions.Regex.Unescape() – Dragouf
Hãy coi chừng rằng đây là 'Regex' cụ thể và cũng có thể thoát chuỗi như' @ "\ [" 'thành' @ "[" ', điều này chỉ mong muốn nếu chúng ta nói về một regex, không phải là một chuỗi bình thường. – Silvermind
Tiếp theo phương pháp tương tự như javascript escape/unescape chức năng:
Microsoft.JScript.GlobalObject.unescape();
Microsoft.JScript.GlobalObject.escape();
- 1. Làm thế nào để các thực thể HTML unescape trong một chuỗi trong Python 3.1?
- 2. Làm thế nào để bạn unescape URL trong Java?
- 3. Rails + Haml: Làm thế nào để tham số thẻ unescape?
- 4. Làm thế nào để mã hóa một chuỗi trong .NET?
- 5. Làm cách nào để hủy bỏ một luồng khác trong .NET, khi chuỗi đã nói đang chạy Console.ReadLine?
- 6. Đây có phải là cách tốt nhất để unescape unicode thoát chuỗi trong Ruby?
- 7. Làm thế nào để bỏ qua `\ r \ n 'trong chuỗi
- 8. Làm cách nào để hoàn nguyên các ký tự thoát XML (XML unescape)?
- 9. Url Unescape trong java
- 10. Làm cách nào để chia chuỗi và bỏ qua khoảng trắng?
- 11. Làm cách nào để bỏ chọn mục trong ListView?
- 12. Làm cách nào để định dạng chuỗi thành trường chiều rộng cố định trong .Net?
- 13. Python: unescape "\ XXX"
- 14. Unescape Python Strings Từ HTTP
- 15. decodeURIComponent vs unescape, có gì sai với unescape?
- 16. Làm thế nào để loại bỏ chuỗi con khỏi chuỗi bằng cách sử dụng PHP?
- 17. Làm cách nào để "ngã" một luồng trong .NET?
- 18. Làm cách nào để bỏ qua khoảng trống trong chuỗi chủ đề biểu thức chính quy?
- 19. Làm thế nào để unescape HTML trong Nokogiri Ruby, do đó & vẫn & không &
- 20. Làm cách nào để hủy bỏ socket.recv() khỏi chuỗi khác trong Python
- 21. Làm thế nào để unescape XML ký tự đặc biệt trong Perl?
- 22. Làm cách nào để bỏ qua thời gian trong NSDate?
- 23. unescape một url thoát trong C#
- 24. Làm thế nào để loại bỏ 0 từ một chuỗi
- 25. .NET Có cách nào để lấy id chuỗi chính không?
- 26. Làm cách nào để sử dụng Chuỗi dưới dạng Luồng trong .Net?
- 27. Làm cách nào để tạo một băm trong Ruby so sánh chuỗi, bỏ qua trường hợp?
- 28. .NET HttpClient. Làm thế nào để POST giá trị chuỗi?
- 29. Làm thế nào để loại bỏ giá trị null trong chuỗi json
- 30. unescape Javascript thoát giá trị trong JAVA
Không nhập điều đó vào hộp văn bản, chỉ cần nhấn phím Enter. –
và nếu họ muốn nói \ r \ n \ r \ r? (vâng, đây là tình huống khả thi đối với mô hình cụ thể này) – Firoso
Kiểm tra điều này: http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/08bb20a2-82b9-4f2f-9f1a-994961fbecc3/ –