C# 初学者正则表达式替换性能问题

C# 初学者正则表达式替换性能问题,c#,regex,performance,C#,Regex,Performance,我有一个简单的基于正则表达式替换的例程,有没有改进它的性能(也许还有它的优雅?) 谢谢,, Matt您可以组合大多数表达式,直到最后只有三个表达式: public static string stripshrapnel(string str) { string newstr = str.Trim(); newstr = Regex.Replace(newstr, @"[-',""?#;:+%[\]*/\\\\]", ""); newstr = Re

我有一个简单的基于正则表达式替换的例程,有没有改进它的性能(也许还有它的优雅?)

谢谢,,
Matt

您可以组合大多数表达式,直到最后只有三个表达式:

public static string stripshrapnel(string str)
{
        string newstr = str.Trim();
        newstr = Regex.Replace(newstr, @"[-',""?#;:+%[\]*/\\\\]", "");
        newstr = Regex.Replace(newstr, @"&?", "&");
        newstr = Regex.Replace(newstr, @" ?", " ");
        return newstr;
}

可以组合大多数表达式,直到只得到三个:

public static string stripshrapnel(string str)
{
        string newstr = str.Trim();
        newstr = Regex.Replace(newstr, @"[-',""?#;:+%[\]*/\\\\]", "");
        newstr = Regex.Replace(newstr, @"&?", "&");
        newstr = Regex.Replace(newstr, @" ?", " ");
        return newstr;
}

由于您使用的是零正则表达式功能,可能还有另一种方法。看起来C#有一个字符串的方法,用它来代替,我想在做正则表达式而不是简单的替换时会用到很多额外的功能。

既然你使用的是零正则表达式功能,也许还有另一种方法。C#似乎有一个字符串方法,用它来代替,我想在执行regex而不是简单的替换时会用到很多额外的功能。

String.replace没有字符集,需要与问题中类似的代码。Gumbo的解决方案速度更快,可读性更强。String.Replace没有字符集,需要与问题中类似的代码。Gumbo的解决方案更快,可读性更强。神奇的Gumbo!,谢谢,有人知道这会快多少吗(粗略的%?)@WickedW:目前的表现不能接受吗?如果是,您是否分析了应用程序以确定这是否是一个瓶颈?通常最好避免过早优化。(虽然我肯定会考虑用Gumbo的代码替换你原来的代码。)@WickedW:我并不期望它会快得多,因为它做同样的工作,但只是以不同的方式。但是你为什么不自己做基准呢?很棒的秋葵!,谢谢,有人知道这会快多少吗(粗略的%?)@WickedW:目前的表现不能接受吗?如果是,您是否分析了应用程序以确定这是否是一个瓶颈?通常最好避免过早优化。(虽然我肯定会考虑用Gumbo的代码替换你原来的代码。)@WickedW:我并不期望它会快得多,因为它做同样的工作,但只是以不同的方式。但是你为什么不自己做基准呢?