PDA

Ver la Versión Completa : Expresion Regular


D-MO
29-06-2007, 19:43:26
Bueno, ya mi cabeza no dá mas...:D, 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 :rolleyes:), ustedes que opinan, habrá una solución mejor o me quedo con esta :cool:.

Tengo una cadena como esta:
10:2000-2005/50:1999-2000/25:2001-2003/ Y tengo los siguientes datos:

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:
/[(^.*)|(\/.*)]\:/ 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.

/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í:
/[(^.*)|(\/.*)]\: (.*)\-(.*)\// 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 :p.

Saludos.

seoane
29-06-2007, 19:48:24
:confused: Solo una aclaración ¿estamos hablando de delphi?. Porque delphi no maneja expresiones regulares (a menos que se instalen componentes de terceros).

D-MO
29-06-2007, 20:08:36
Delphi|PHP|C|Java|Javascript|..., cualquier lenguaje, ya que no toco funciones específicas de algún lenguaje, simplemente es "teoría" de Expresiones Regulares, con lo que se haría posible usarlo en X e Y lenguaje, que igual, funcionaría, si es que funciona y el lenguaje lo permite, claro está.

Saludos.

D-MO
30-06-2007, 18:51:59
¿Ninguna Idea?