1

我有一个包含以下代码的函数:

Text = Text.Where(c => !Char.IsDigit(c)).Aggregate<char, string>(null, (current, c) => current + c);

但它相当慢。无论如何我可以加快速度吗?

4

4 回答 4

8

试试这个正则表达式:

Text = Regex.Replace(Text, @"\d+", "");

\d+\d一次删除多个连续数字更有效。

于 2013-01-19T15:00:36.927 回答
3

是的,您可以使用Regex.Replace

Text = Regex.Replace(Text, "\\d", "");

正则表达式匹配单个数字。用空字符串Regex.Replace替换字符串中出现的每个它。Text""

于 2013-01-19T15:00:38.690 回答
2

所有这些串联可能会杀死你。最简单/最好的可能是正则表达式:

Text = Regex.Replace(Text, "\\d", "");

或者您可以尝试只创建一个新的字符串实例:

Text = new string(Text.Where(c => !Char.IsDigit(c)).ToArray())
于 2013-01-19T15:02:18.580 回答
1

尝试使用Regex.Replace;

在指定的输入字符串中,将匹配正则表达式模式的字符串替换为指定的替换字符串。

Regex.Replace(Text, "\\d+", "");

这是一个DEMO.

于 2013-01-19T15:01:25.683 回答