我需要一個WPF控件上的文本框,它可以像文本Commit\r\n\r
(這是.net字符串"Commit\\r\\n\\r"
)並將其轉換回"Commit\r\n\r"
作爲.net字符串。我希望有一個string.Unescape()和string.Escape()方法對,但它似乎並不存在。我將不得不寫我自己的?還是有更簡單的方法來做到這一點?如何在.net中使用Unescape和Reescape字符串?
回答
漢斯的代碼,改進版本。
- 製造它使用StringBuilder - 一個真正的性能助推器的長字符串
使其成爲一個擴展方法
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列出的函數名稱錯誤 - 它是/ unescaping /一個字符串,但被稱爲EscapeStringChars()。 – redcalx 2012-06-25 13:27:26
System.Text.RegularExpressions.Regex.Unescape(@"\r\n\t\t\t\t\t\t\t\t\tHello world!")
System.Text.RegularExpressions.Regex.Unescape() – Dragouf 2011-06-30 13:55:58
請注意,這是'Regex'特有的,並且像'@「\ [」'轉換爲'@「[」'這樣的字符串只是在我們談論正則表達式,不是一個正常的字符串。 – Silvermind 2014-05-02 11:17:03
以下方法同javascript轉義/ unescape功能:
Microsoft.JScript.GlobalObject.unescape();
Microsoft.JScript.GlobalObject.escape();
- 1. 在C#中使用Unescape字符串Interactive
- 2. unescape字符串
- 3. 如何使用jQuery和mySQL轉義和unescape字符串
- 4. 如何在GWT中使用unescape字符串
- 5. 如何在Web API中使用unescape字符串屬性
- 6. 如何在php中使用unescape字符串?
- 7. UNESCAPE JSON字符串
- 8. Python中的Unescape字符串
- 9. 如何自動UNESCAPE在字符串中的轉義字符
- 10. PostgreSQL unescape JSON字符串
- 11. Ruby unescape HTML字符串
- 12. 使用url unescape在字符串視圖中構建url
- 13. 用於MySQL的Unescape字符串Python
- 14. StreamTokenizer unescape字符
- 15. 如何在C++中使用字符串和字符串指針
- 16. 在.NET中使用Gson json字符串
- 17. 如何在.NET中加密字符串?
- 18. 如何在.NET中翻譯字符串
- 19. 紅寶石:UNESCAPE unicode字符串
- 20. JQuery/Coffeescript unescape變量字符串
- 21. Unescape HTML字符串,直到HTML內容
- 22. 來自HTTP的Unescape Python字符串
- 23. 來自Flex中字符串的Unescape(解碼)HTML字符
- 24. 如何在JavaScript中使用unescape()函數?
- 25. 如何在Struts2中使用Unescape HTML
- 26. 如何在mod_rewrite中使用unescape QUERY_STRING?
- 27. 使用PHP的Unescape unicode字符
- 28. 如何在.NET字符串中使用system \ environment變量?
- 29. ConfigurationManager - 如何在.NET 3.5中使用連接字符串?
- 30. 如何在C#.NET中使用UNHEX()MySQL二進制字符串?
不要在文本框中輸入,只需按Enter鍵。 – 2010-04-18 04:49:28
如果他們想說\ r \ n \ r \ r? (是的,這是這種特定型號的可行情況) – Firoso 2010-04-18 04:55:46
選中此項:http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/08bb20a2-82b9-4f2f-9f1a-994961fbecc3/ – 2010-04-18 05:09:49