Coincidir con patrones de texto
Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 48 de 63.
Una Regex describe un patrón de texto. [A-Z] coincide con una letra mayúscula ASCII, [0-9] coincide con un dígito, {2} requiere exactamente dos repeticiones y + requiere una o más. matches comprueba toda la entrada; una subcadena coincidente por sí sola no es suficiente.
Dentro de main:
val code = Regex("[A-Z]{2}[0-9]{3}")
println(code.matches("AB123"))La entrada completa contiene exactamente dos letras mayúsculas seguidas de tres dígitos.
Regex.matches requiere que toda la entrada satisfaga el patrón.
Desafío
IntermedioCompleta validCode con el parámetro text: String. Devuelve si text consta exactamente de tres letras ASCII mayúsculas seguidas de exactamente dos dígitos ASCII, sin espacios ni otros caracteres. Usa Regex.matches.
A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, según se describe.
Devuelve un valor de tipo Boolean. Conserva el código de entrada/salida proporcionado. Lee los argumentos escalares, uno por línea; una lista comienza con su cantidad, seguida de sus elementos, y un mapa comienza con su cantidad de entradas, seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas usan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.
Pruébalo tú mismo
fun validCode(text: String): Boolean {
// Escribe tu solución aquí.
return false
}
fun main() {
val text = readLine().orEmpty()
println(validCode(text))
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y flujo
1Mapas Parte 1
Crear mapasBúsquedas seguras en mapasActualizar mapasComprobar clavesRepaso - Stock Desk4Colecciones anidadas
Listas de listasRecorrer filasResúmenes de filasAplanar listas anidadasRepaso: filas de asientos7Flujos de colecciones
Transformar con MapFiltrar valoresProbar reglas de coleccionesAcumular con FoldRepaso: totales aprobados10Procesamiento de texto
Dividir y unirConstruir texto de forma eficienteCoincidir con patrones de textoBuscar y reemplazarRepaso: código más limpio2Mapas, parte 2
Iterar entradas de mapasClaves y valoresMapas de frecuenciaMapas anidadosRepaso: informe de frecuencias5Proyecto - Agenda de contactos
Guardar contactosBuscar contactos3Conjuntos y pertenencia
Crear conjuntosActualizar conjuntosOperaciones con conjuntosComprobación de subconjuntosRepaso: invitados al evento6Valores de función
Escribir lambdasTipos de funciónPasar funcionesVariables capturadasRepaso - Puntuación configurablePractica por tu cuenta: Playground de Kotlin