Error en la validation de la expresión regular de la matrícula del automobile

Estoy ejecutando la siguiente testing para validar la matrícula de un automobile. ¿Qué estoy haciendo mal?

testValido de retorno inválido

TestValid return success

@Test fun testInvalid() { val value = "ABC12345" val pattern = Pattern.compile("[AZ]{3}[0-9]{4}") val matcher = pattern.matcher(value) val found = matcher.find() System.out.print("$value is valid: $found") Assert.assertFalse(found) } @Test fun testValid() { val value = "ABC1234" val pattern = Pattern.compile("[AZ]{3}[0-9]{4}") val matcher = pattern.matcher(value) val found = matcher.find() System.out.print("$value is valid: $found") Assert.assertTrue(found) } 

Necesita usar el carácter $ al final de regEx para indicar el final:

 @Test fun testInvalid() { val value = "ABC12345" val pattern = Pattern.compile("[AZ]{3}[0-9]{4}$") val matcher = pattern.matcher(value) val found = matcher.find() System.out.print("$value is valid: $found") Assert.assertFalse(found) } @Test fun testValid() { val value = "ABC1234" val pattern = Pattern.compile("[AZ]{3}[0-9]{4}$") val matcher = pattern.matcher(value) val found = matcher.find() System.out.print("$value is valid: $found") Assert.assertTrue(found) } 
  • groupValues ​​solo devuelve la última aparición de patrón repetitivo
  • Regex: coincide con palabras que no son cadenas
  • Kotlin: ¿Cómo get un grupo de captura de la primera línea que coincida?
  • Expresión regular para unir caracteres al principio de la línea solamente