Prova a utilizzare StringBuilder.Replace invece.
Dovrebbe migliorare notevolmente le prestazioni.
Questo è valido come string.Replace(..)
substitude e non per regex
chiama. Ma a quanto pare il collo di bottiglia è in string
chiamate.
MODIFICA :
Esempio (pesudocode ):
char[] c = new char[]{'.', ' '};
Value = Value.Trim(c);
var sb = new StringBuilder(Value);
sb.Replace("'", "");
sb.Replace(")", " ");
sb.Replace("(", " ");
sb.Replace("-", " ");
sb.Replace("_", " ");
sb.Replace("רח", "");