¿Necesita realizar una búsqueda con comodines (*,?, Etc.) en una cadena usando Regex

Necesito realizar una búsqueda con comodines ( * , ? , Etc.) en una cadena. Esto es lo que he hecho:

 string input = "Message"; string pattern = "d*"; Regex regex = new Regex(pattern, RegexOptions.IgnoreCase); if (regex.IsMatch(input)) { MessageBox.Show("Found"); } else { MessageBox.Show("Not Found"); } 

Con el código anterior, el bloque “Encontrado” está pegando pero en realidad ¡no debería!

Si mi patrón es “e *”, solo debe “Buscarse”.

Mi comprensión o requisito es d * search, debería encontrar el texto que contiene “d” seguido de cualquier carácter.

¿Debo cambiar mi patrón como “d. *” Y “e. *”? ¿Hay algún soporte en .NET para Wild Card que internamente lo hace mientras usa la clase Regex?

De http://www.codeproject.com/KB/recipes/wildcardtoregex.aspx :

 public static string WildcardToRegex(string pattern) { return "^" + Regex.Escape(pattern) .Replace(@"\*", ".*") .Replace(@"\?", ".") + "$"; } 

Entonces algo como foo*.xls? se transformará en ^foo.*\.xls.$ .