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

duda con expresiones regulares

Estas en el tema de duda con expresiones regulares en el foro de ASPX (.net) en Foros del Web. Hola, una consulta. alguien sabrá como hacer una expresión regular, para certificar el siguiente tipo de datos ? 1. 400001 (entre 0 y 499999) 2. ...
  #1 (permalink)  
Antiguo 25/03/2009, 10:15
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 0
duda con expresiones regulares

Hola,

una consulta. alguien sabrá como hacer una expresión regular, para certificar el siguiente tipo de datos ?

1. 400001 (entre 0 y 499999)
2. 400001:15 (la parte anterior a : es igual a la restricción anterior, desde : en adelante es totalmente opcional, pero si hay un : entonces el valor a tomar luego del : es entre 0 a 15).

Intente hacer algo como lo que sigue:

Código:
    Private Function valida(ByVal cadena As String) As Boolean

        Dim objRegExp As New System.Text.RegularExpressions.Regex("^(\d[0-4]\d\d\d\d\d?(:\d|1[0-5]))$")

        If objRegExp.IsMatch(cadena) Then
            valida = True
        Else
            valida = False
        End If
    End Function
respecto de la expresion regular:

1. La parte \d[0-4]\d\d\d\d\d seria para limitar la parte antes de : entre 0 y 499999.
2. La parte ?(:\d|1[0-5]) seria la parte opcional, y que en caso de que existan : entonces el valor posterior seria entre 0 a 15.

Alguien podría ayudarme, please.

Gracias
  #2 (permalink)  
Antiguo 26/03/2009, 08:52
 
Fecha de Ingreso: enero-2009
Mensajes: 24
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: duda con expresiones regulares

Ya encontré la solución, era cosa de leer un poco y entender como funcan estas cosas. Aqui la solucion, si a alguien le interesa. Esto era para limitar lo que se conoce como direcciones Modbus.

Lo unico que me esta faltando, seria que para el caso de los valores inferiores a 100000 (es decir entre 0 y 99999) si yo ingreso un 15, la expresion regular sea capas de comprender que debe completar con ceros (por lo tanto el 15 quedaria 000015, si entra un 171 la expresion regular deba completar con ceros asi 000171).

No se si eso es posible, pero bueno allí les dejo la inquietud
Cita:
"^((([0-1]([0-9]{5}))|([3-4]([0-9]{5}):(\d|1[0-5])))|([3-4][0-9]{5}))$"
Salu2
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




La zona horaria es GMT -6. Ahora son las 11:14.