9

我有一个包含许多字符的字符串。我想删除 A-Za-z 和空格,剩下的就剩下了。最好的方法是什么?

这是我尝试过的

presaleEstimateHigh = Regex.Replace(presaleEstimateHigh, @"[A-Za-z]", string.Empty);

但我还需要删除空格。

4

5 回答 5

10

你可以使用\s。

例如:

presaleEstimateHigh = Regex.Replace(presaleEstimateHigh, @"[A-Za-z\s]", string.Empty);
于 2012-11-17T19:19:18.270 回答
3

您的正则表达式很好,除了空格。这应该有效:

string result = Regex.Replace(myString, @"[a-zA-Z\s]+", string.Empty);
于 2012-11-17T19:18:34.107 回答
3

没有正则表达式:

var chars = str.Where(c => !char.IsLetter(c) && !char.IsWhitespace(c)).ToArray();
var rest = new string(chars);
于 2012-11-17T19:21:49.077 回答
2

您可以使用\s包含空格。

Regex.Replace(myString, @"[a-z]|[A-Z]|\s", "")

演示:http: //ideone.com/yHG2xw

于 2012-11-17T19:19:32.167 回答
1

你几乎成功了。使用这个正则表达式

[a-zA-Z ]+

它只包含空格。添加 a+可以提高效率,因为可以一次(内部)替换整个系列的字符。

于 2012-11-17T19:29:24.643 回答