Sólo por diversión, aquí está un no-expresión regular solución (más legible/mantenible por tontos como yo):
string myString = "AB12";
if(Char.IsLetter(myString, 0) &&
Char.IsLetter(myString, 1) &&
Char.IsNumber(myString, 2) &&
Char.IsNumber(myString, 3)) {
// First two are letters, second two are numbers
}
else {
// Validation failed
}
EDITAR
parece que me he entendido mal los requisitos. El código siguiente se asegurará de que los dos primeros caracteres y los dos últimos caracteres de una validación de cadena (siempre y cuando la longitud de la cuerda es> 3)
string myString = "AB12";
if(myString.Length > 3) {
if(Char.IsLetter(myString, 0) &&
Char.IsLetter(myString, 1) &&
Char.IsNumber(myString, (myString.Length - 2)) &&
Char.IsNumber(myString, (myString.Length - 1))) {
// First two are letters, second two are numbers
}
else {
// Validation failed
}
}
else {
// Validation failed
}
siempre puedo ordenar éstos hacia fuera en un sitio web de pruebas de expresiones regulares y luego entrar en vs.net con algo que sé que funciona a partir de pruebas interactivas. –
Un buen sitio web de pruebas te ayudará con esto, como http://regexhero.net/tester/ –
Me funciona bien. ¿Cómo son exactamente tus cadenas entrantes? ¿Estás tratando de hacer coincidir parte de una cadena o esos 4 caracteres son la cadena completa? –