2010-08-05 12 views

Respuesta

9

Es porque no lo ha restringido para que coincida con toda la cadena. Por lo tanto, está permitido considerar coincidencias en subconjuntos de la cadena. Un subconjunto muy grande de la cadena coincide con los datos, por lo que la expresión regular devuelve verdadero.

Intente lo siguiente para forzar que coincida con toda la entrada.

Regex rgx = new Regex(@"^[\w-]*$"); 
rgx.IsMatch(searchString) 
+0

Gracias! Sabía que estaba olvidando algo realmente simple. – Arizona1911

2

Tiene que anclar su expresión. Si no lo hace, entonces si alguna subcadena de la entrada coincide, la coincidencia de expresiones regulares se considera exitosa. Cambie la expresión regular a "^ [\ w -] * $" donde^y $ coincidirán con el principio y el final de la cadena, respectivamente.

Cuestiones relacionadas