Foros del Web » Programando para Internet » ASPX (.net) »

Expresion Regular

Estas en el tema de Expresion Regular en el foro de ASPX (.net) en Foros del Web. Hola a todos necesito una expresion regular que me valide las cadenas formadas por dos caracteres seguidos de diez numeros, pero los dos primeros caracteres ...
  #1 (permalink)  
Antiguo 22/02/2008, 12:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 1
Expresion Regular

Hola a todos

necesito una expresion regular que me valide las cadenas formadas por dos caracteres seguidos de diez numeros, pero los dos primeros caracteres no pueden ser la subcadena "TC". Por ejemplo:

KL1234567890 -> Esta si machea

TC1234567890 -> Esta no debe machear

De momento he llegado a esta expresion:


[^TC\d]{2}\d{10}


y me funciona bien pero me esta marcando como cadenas no validas las que contienen T o C por separado, por ejemplo:

GT1234567890 -> Me la da como no valida y no deberia.

No se como indicarle que TC es una subcadena.

Por si os sirve de algo las pruebas las estoy haciendo en esta pagina, la cual te valida expresiones regulares
http://gollum.inforg.uniovi.es/aii/valida_regexp.php

GRACIAS POR VUESTRA AYUDA
  #2 (permalink)  
Antiguo 22/02/2008, 18:08
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Re: Expresion Regular

[^(TC)\d]{2}\d{10}

prueba asi
  #3 (permalink)  
Antiguo 23/02/2008, 06:54
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Expresion Regular

No me vale, sigue sin cogerme las cadenas tipo:

AC1234567890



Gracias de todos modos.....

¿Se te ocurre otra manera?
  #4 (permalink)  
Antiguo 23/02/2008, 08:00
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 4 meses
Puntos: 7
Re: Expresion Regular

Para mi la forma más sencilla sería utilizar ([A-Z]{2})\d{10} y luego comprobar que el valor del primer grupo sea diferente de TC. Pero si en realidad quieres hacerlo todo eso desde la expresión regular, creo que algo como esto podría servirte:
((T)|[A-SU-Z])(?(2)[A-BD-Z]|[A-Z])\d{10}

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #5 (permalink)  
Antiguo 25/02/2008, 04:30
 
Fecha de Ingreso: febrero-2008
Mensajes: 17
Antigüedad: 16 años, 2 meses
Puntos: 1
Re: Expresion Regular

Gracias xknown al final he optado por la primera opcion, queda bastante mas claro y es mas sencillo de mantener.

Al final quedo de la siguiente manera:

Regex.IsMatch(idd, @"[A-Za-z]{2}\d{10}")&&(!idd.Contains("TC")))

Gracias de nuevo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:31.