Dada searchString = "23423asdfa-''"
expresión regular que coincide con cualquier número o una letra o un guión
Esta expresión regular debe evaluar a falso pero no es así! ¿Algunas ideas?
Regex rgx = new Regex(@"[\w-]*");
rgx.IsMatch(searchString)
Dada searchString = "23423asdfa-''"
expresión regular que coincide con cualquier número o una letra o un guión
Esta expresión regular debe evaluar a falso pero no es así! ¿Algunas ideas?
Regex rgx = new Regex(@"[\w-]*");
rgx.IsMatch(searchString)
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)
Gracias! Sabía que estaba olvidando algo realmente simple. – Arizona1911
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.
Ahh perdió los dos apóstrofes al final en la comilla doble. Sí, la respuesta de JaredPar debería cubrirlo. –