public static string Escape(string value, bool escapeBackslash) { StringBuilder resultBuilder = new StringBuilder(value); if (escapeBackslash) { resultBuilder.Replace("\\", "\\\\"); } string[] oldValues = { "^", "$", ".", "|", "?", "*", "+", "(", ")", "[", "]", "{", "}" }; string[] newValues = { "\\^", "\\$", "\\.", "\\|", "\\?", "\\*", "\\+", "\\(", "\\)", "\\[", "\\]", "\\{", "\\}" }; resultBuilder.ReplaceMany(oldValues, newValues); return resultBuilder.ToString(); }