3
A
回答
8
正則表達式(編輯)?
string s = "lsg @~A\tSd 2£R3 ad"; // note tab
s = Regex.Replace(s, @"\s+", " ");
s = Regex.Replace(s, @"[^a-zA-Z ]", ""); // "lsg A Sd R ad"
2
使用當然正則表達式!
string myCleanString = Regex.Replace(stringToCleanUp, @"[\W]", "");
string myCleanString = Regex.Replace(stringToCleanUp, @"[^a-zA-Z0-9]", "");
0
我想你可以用正則表達式來做到這一點.What Marc和boekwurm提到過。
嘗試這些鏈路也http://www.c-sharpcorner.com/UploadFile/prasad_1/RegExpPSD12062005021717AM/RegExpPSD.aspx
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex.aspx
注:[A-Z]:字符的範圍內。匹配指定的 範圍內的任何字符。例如,「[a-z]」匹配範圍「a」到「z」中的任何小寫字母 字符。
正則表達式還提供了用於表示常見字符 範圍的特殊字符。您可以使用「[0-9]」來匹配任何數字,也可以使用「\ d」。同樣, 「\ D」可以匹配任何非數字的數字。使用「\ s」來匹配任何空格字符, 並使用「\ S」來匹配任何非空格字符。
5
當然,正則表達式解決方案是最好的(我認爲)。 但是有人必須在LINQ中做到這一點,所以我有一些樂趣。你去:
bool inWhiteSpace = false;
string test = "lsg @~A\tSd 2£R3 ad";
var chars = test.Where(c => ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || char.IsWhiteSpace(c))
.Select(c => {
c = char.IsWhiteSpace(c) ? inWhiteSpace ? char.MinValue : ' ' : c;
inWhiteSpace = c == ' ' || c == char.MinValue;
return c;
})
.Where(c => c != char.MinValue);
string result = new string(chars.ToArray());
相關問題
- 1. C#從字符串
- 2. C#從字符串
- 3. 從字符串C#
- 4. C#從字符串
- 5. C#,從字符串
- 6. C#從字符串
- 7. C#從字符串
- 8. C:從字符串
- 9. 單獨的字符串中的字符在C#3.0
- 10. Swift 3.0字符串問題
- 11. Actionscript 3.0字符串格式?
- 12. 從c字符串中刪除字符
- 13. 從字符串轉換爲字符 - C++
- 14. 從字符串中刪除字符C
- 15. C從字符串中刪除字符
- 16. C++從字符串中刪除字符
- 17. 從字符串C#刪除點字符
- 18. 從C字符串中刪除字符
- 19. C字符串字符串
- 20. C++字符串!=字符串
- 21. C#語法從字符串
- 22. C++:從字符串對象
- 23. 的Objective-C:從字符串
- 24. c - 從中字符串
- 25. 從字符串在Objective-C
- 26. C++:從字符串爲char *
- 27. C++解析,從字符串
- 28. C字符串到寬C字符串
- 29. 從字符串獲取子串C
- 30. 從C++傳遞字符串到C++/CLI
順便說一句,你可以直接寫入test.Where(c => ...)而不用初始的ToCharArray()。 – 2009-08-31 09:29:56
謝謝。我知道字符串實現IEmumerable,但不知何故,該擴展方法沒有出現在intellisense中。 –
Botz3000
2009-08-31 09:32:48
與正則表達式相比,此效果表現良好。在'test'前面有一個額外的領先的parens,但我不能在答案中編輯一個字符。 – goodeye 2012-04-05 01:31:45