usando expresiones regulares para validar el formato de entrada en C#
Frecuentes
Visto 1,985 veces
2
Esta es una pregunta súper básica (hoy estoy con muerte cerebral):
¿Cómo valido la entrada usando expresiones regulares, para ver: 1) si la entrada está en una forma determinada 2) si la entrada está en mayúsculas (simplemente convertir la entrada en mayúsculas no es factible para esto)
No quiero asegurarme de que mis entradas tengan el formato XX_XX. Aquí isi lo que tengo:
public bool IsKosher(string input)
{
Regex r = new Regex(input);
if(r.Matches([A-Z]_[A-Z]))
{
return true;
}
return false;
}
¿Alguna idea de por qué no está compilando?
¡Gracias!
4 Respuestas
5
Le faltan comillas dobles, coloca parámetros en lugares incorrectos y no necesita un if
declaración:
public bool IsKosher(string input) {
return Regex.IsMatch(input, "[A-Z]{2}_[A-Z]{2}");
}
contestado el 22 de mayo de 12 a las 20:05
3
¿Citas? ¿Falta un paréntesis de cierre? ¿Los partidos no devuelven un valor booleano? ¿Intercambio de parámetros de cadena? Todo hará que su código no se compile.
Aunque es posible que desee esto si es "XX_XX":
var r = new Regex("[A-Z]{2}_[A-Z]{2}");
return r.IsMatch(input);
contestado el 22 de mayo de 12 a las 21:05
2
Tienes que poner [AZ]_[AZ] entre comillas así:
if(r.Matches("[A-Z]_[A-Z]")
contestado el 22 de mayo de 12 a las 20:05
2
- Citas.
- Dos personajes a cada lado de la
_
. - La
Regex
constructor toma el patrón; losMatches
El método toma la cadena para buscar. - La
Matches
el método devuelve unMatchCollection
.IsMatch
devuelve un booleano.
Al igual que:
if (Regex.IsMatch(input, "[A-Z]{2}_[A-Z]{2}")
contestado el 22 de mayo de 12 a las 21:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas c# regex formatting or haz tu propia pregunta.