Ver Mensaje Individual
  #1  
Antiguo 29-06-2007
Avatar de D-MO
D-MO D-MO is offline
Miembro
 
Registrado: ago 2005
Ubicación: root@debian:/#
Posts: 1.042
Reputación: 20
D-MO Va por buen camino
Expresion Regular

Bueno, ya mi cabeza no dá mas..., se me ocurre una solución a mi problemita pero no se si será el mas eficiente (es más, ni siquiera lo he probado ), ustedes que opinan, habrá una solución mejor o me quedo con esta .

Tengo una cadena como esta:
Código:
10:2000-2005/50:1999-2000/25:2001-2003/
Y tengo los siguientes datos:
Código:
ID=10
AI=2003
AF=2005
Debo corroborar lo siguiente:
  1. Que ID es igual al número antes del ":"
  2. Que AI es mayor o igual al número que está entre "ID:" y "-"
  3. Que AF es menor o igual al número que está entre "ID:AI-" y "/"
Se me ocurre lo siguiente:
Código:
/[(^.*)|(\/.*)]\:/
Con lo que estaría tomando el valor antes del ":" ya sea si es de inicio de la cadena o que está después de "/". Aquí haria la primera comparación y si se cumple la primera regla pasar al siguiente paso.

Cita:
/ID\: (.*)\-(.*)\// #Que se note que dejo un espacio en blanco despues de : porque si no me coloca un emoticon
De igual forma que la anterior, compararía los datos, si el resultado [1] es mayor o igual al valor en AI y el resultado [2] es menor o igual que AF pues entonces ejecutaré el proceso que se solicita.

Aunque también podríamos hacerlo así:
Cita:
/[(^.*)|(\/.*)]\: (.*)\-(.*)\//
Ya que obtendría los datos con una sola expresión y pues menos código ¿no?, he igual de funcional (si funcionara, claro).

Las preguntas son:
  • ¿Existe una mejor forma de hacerlo?
  • ¿A alguien se le ocurre otra forma?
  • ¿Estoy metiendo las patas y no se siquiera qué es o como se usa un comodín?
Con el permiso de Al, un abrazo regular .

Saludos.
Responder Con Cita