Escape de personaje especial en Regex

¿Hay alguna forma de escapar de los caracteres especiales en expresiones regulares, como []()* y otros, a partir de una cadena?

Básicamente, le pido al usuario que ingrese una cadena, y quiero poder buscar en la base de datos usando regex. Algunos de los problemas con los que me encontré son too many)'s o [xy] range in reverse order , etc.

Entonces, lo que quiero hacer es escribir una función para reemplazar en la entrada del usuario. Por ejemplo, reemplazando ( con \( , reemplazando [ con \[

¿Hay una función integrada para que Regex lo haga? Y si tengo que escribir una función desde cero, ¿hay alguna forma de explicar todos los caracteres fácilmente en lugar de escribir la statement de reemplazo uno por uno?

Estoy escribiendo mi progtwig en C # usando Visual Studio 2010

Puedes usar .NET’s construido en Regex.Escape para esto. Copiado del ejemplo de Microsoft:

 string pattern = Regex.Escape("[") + "(.*?)]"; string input = "The animal [what kind?] was visible [by whom?] from the window."; MatchCollection matches = Regex.Matches(input, pattern); int commentNumber = 0; Console.WriteLine("{0} produces the following matches:", pattern); foreach (Match match in matches) Console.WriteLine(" {0}: {1}", ++commentNumber, match.Value); // This example displays the following output: // \[(.*?)] produces the following matches: // 1: [what kind?] // 2: [by whom?] 

puede usar Regex.Escape para la entrada del usuario

 string matches = "[]()*"; StringBuilder sMatches = new StringBuilder(); StringBuilder regexPattern = new StringBuilder(); for(int i=0; i