繁体   English   中英

从大字符串中删除数字时的性能问题

[英]Performance issue when removing numbers from large string

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

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

但是它很慢。 无论如何,我可以加快速度吗?

试试这个正则表达式:

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

\\d+\\d更有效,因为它可以一次删除多个连续的数字。

是的,您可以使用Regex.Replace

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

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

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

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

或者,您可以尝试仅制作一个新的字符串实例:

Text = new string(Text.Where(c => !Char.IsDigit(c)).ToArray())

尝试使用Regex.Replace ;

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

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

这是一个DEMO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM