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:
- Que ID es igual al número antes del ":"
- Que AI es mayor o igual al número que está entre "ID:" y "-"
- 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.