Regex.Replace比使用String.Contains的条件语句慢得多

ale*_*exD 2 c# regex string replace

我有一个包含400个字符串的列表,所有字符串都以"_GONOGO"或"_ALLOC"结尾.当应用程序启动时,我需要从每个字符串中删除"_GONOGO"或"_ALLOC".

我试过这个:'string blah = Regex.Replace(string,"(_ GONOGO | _ALLOC)",""));'

但它比这样的简单条件语句慢得多:

if (string.Contains("_GONOGO"))
          // use Substring
else if (string.Contains("_ALLOC"))
          // use Substring w/different index
Run Code Online (Sandbox Code Playgroud)

我是正规表达的新手,所以我希望有人有更好的解决方案,或者我正在做一些可怕的错误.这不是什么大不了的事,但将这条4线条件变为一条简单的正则表达式线条会很不错.

Ada*_*son 8

虽然它不是RegEx,但你可以做到

string blah = string.Replace("_GONOGO", "").Replace("_ALLOC", "");
Run Code Online (Sandbox Code Playgroud)

RegEx非常适合复杂的表达式,但对于像这样的非常简单的操作,开销有时会过度.