Expresiones Regulares en Java

Que tal experto, un saludo antes que nada, te agradezco de antemano tu atención y apoyo para resolver este problemilla.
Tengo una expresión regular en Java la cual valida que una fecha sea válida, funciona correctamente pero solo acepta hasta el día 28 en febrero, necesito me podrías ayudar a modificarla para que acepte hasta el día 29 de febrero, ya que con un if puedo saber si es una año bisiesto o no y así utilizar una expresión regular o la otra.
Te proporciono la expreg que acepta hasta el día 28 de feb, ya hice pruebas con ella y solo funciona hasta el día 28 en febrero sin importar si es bisiesto o no:
String rExp = "^(?:(31)(\\D)(0?[13578]|1[02])\\2|(29|30)(\\D)(0?[13-9]|1[0-2])\\5|(0?[1-9]|1\\d|2[0-8])(\\D)(0?[1-9]|1[0-2])\\8)((?:1[6-9]|[2-9]\\d)?\\d{2})$|^(29)(\\D)(0?2)\\12((?:1[6-9]|[2-9]d)?(?:0[48]|[2468][048]|[13579][26])|(?:16|[2468][048]|[3579][26])00)$";
Espero y me halla explicado bien, y espeor contar con tu valiosa ayuda, de nuevo un cordial saludo.

1 respuesta

Respuesta
Ante todo, ole tus huevos por la pedazo de expresión regular que te has currado. No se si tienes que hacerlo así por narices, es decir, usar una expresión regular, porque yo creo que es muchísimo más sencillo crear un objeto Date o Calendar con el día, mes y año y dejar que sea la propia clase la que valide la fecha.
Te lo digo porque me veo incapaz de completar tu expresión regular para que tenga en cuenta los años bisiestos, además, en este tipo de situaciones las expresiones regulares no son muy aptas.
Puedes cerrar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas