Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haga lo que hicimos en el aula (Regex)

La expresión regular que valida exactamente ese formato sería:

\d{6}-\d{2}/MX

Pero como estás en Java (y en una anotación), debes escapar las barras:

@Pattern(regexp = "\d{6}-\d{2}/MX")

Explicación rápida del regex:

\d{6} → seis dígitos

  • → guion literal

\d{2} → dos dígitos

/MX → texto literal /MX

Si quieres ser todavía más estricto y asegurarte de que no haya nada antes ni después, puedes usar anclas:

@Pattern(regexp = "^\d{6}-\d{2}/MX$")

1 respuesta

¡Hola Nicol, espero que estés bien!

Entiendo que estás trabajando con expresiones regulares en Java para validar el formato de un número de Cédula Profesional. Según el nuevo formato que mencionaste, el patrón debe ser "XXXXXX-XX/MX". Ya has identificado correctamente la expresión regular para este formato:

\d{6}-\d{2}/MX

Sin embargo, como estás usando Java, necesitas escapar las barras invertidas. Así que la expresión regular correcta para usar en tu anotación @Pattern sería:

@Pattern(regexp = "^\\d{6}-\\d{2}/MX$")

Esta expresión asegura que:

  • ^ marca el inicio de la cadena.
  • \\d{6} valida exactamente seis dígitos.
  • - es un guion literal.
  • \\d{2} valida exactamente dos dígitos.
  • /MX es el texto literal "/MX".
  • $ marca el final de la cadena.

Esto garantiza que el formato sea exactamente como el especificado, sin caracteres adicionales antes o después.

Espero haber aclarado tu duda y que puedas aplicar esto en tu código. ¡Espero haber ayudado y buenos estudios!