Conceptos Básicos de Expresiones Regulares
Parte de la sección Lógica y Flujo del Journey de Java de Coddy — lección 46 de 59.
Las Expresiones Regulares (regex) son patrones utilizados para buscar y validar cadenas. En Java, utilizamos el método matches() para verificar si una cadena coincide con un patrón.
Comprobar si una cadena contiene solo dígitos:
String text = "12345";
boolean isMatch = text.matches("[0-9]+");Después de ejecutar el código anterior, isMatch contiene:
true
Verificar si una cadena contiene solo letras:
String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");Después de ejecutar el código anterior, isMatch contiene:
true
Desafío
FácilCrea un método llamado validateInput que toma dos argumentos:
- Una String (
text) para validar - Una String (
type) que especifica el tipo de validación
El método debe validar el texto según estos tipos:
- "number": debe contener solo dígitos (0-9)
- "word": debe contener solo letras (a-z o A-Z)
- "email": debe contener @ y al menos un carácter antes de él
- "phone": debe contener exactamente 10 dígitos
Los mensajes de retorno deben ser:
- Si text es null: retornar "Invalid input"
- Si type es inválido: retornar "Invalid type"
- Si la validación pasa: retornar "Valid"
- Si la validación falla: retornar "Invalid"
Hoja de referencia
Las expresiones regulares (regex) son patrones utilizados para buscar y validar cadenas. En Java, utiliza el método matches() para verificar si una cadena coincide con un patrón.
Verifica si una cadena contiene solo dígitos:
String text = "12345";
boolean isMatch = text.matches("[0-9]+");Verifica si una cadena contiene solo letras:
String text = "Hello";
boolean isMatch = text.matches("[a-zA-Z]+");Patrones regex comunes:
[0-9]+- uno o más dígitos[a-zA-Z]+- uno o más letras[0-9]{10}- exactamente 10 dígitos.+@.+- contiene @ con al menos un carácter antes de él
Pruébalo tú mismo
import java.util.Scanner;
public class Main {
public static String validateInput(String text, String type) {
// Escribe tu código aquí
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String type = scanner.nextLine();
if (text.equals("null")) text = null;
System.out.println(validateInput(text, type));
}
}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
1Arreglos Multidimensionales
Básicos de Arreglos 2DAccediendo a Elementos de Arreglos 2DBucles Anidados con Arreglos 2DResumen - Arreglos 2DSuma y Resta de MatricesArreglos IrregularesArreglos 3D y Más AlláPatrones Comunes de Arreglos 2DResumen - Todo Sobre Arreglos4HashSet Parte 1
¿Qué es un HashSet?Agregando un elementoEliminando un elementoComprobando si existe un elementoVacío y tamañoLimpiar y clonarResumen - HashSet7Manejo Básico de Errores
Básicos de Try-CatchBloque FinallyLanzamiento de ExcepcionesExcepciones Personalizadas2HashMap Parte 1
¿Qué es un HashMap?Declarar un HashMapAcceder a ValoresVerificar si una Clave ExisteModificar DiccionariosResumen - HashMap5HashSet Parte 2
Matemáticas - Unión de HashSetsMatemáticas - Intersección de HashSetMatemáticas - Diferencia de ConjuntosMatemáticas - Diferencia SimétricaSubconjuntos y SuperconjuntosIterando Sobre Conjuntos8Operaciones Avanzadas con Cadenas
Conceptos Básicos de StringBuilderIntroducción a StringBufferConceptos Básicos de Expresiones RegularesCoincidencia de Patrones con RegexTokenizador de CadenasFormato Avanzado de Cadenas3HashMap Parte 2
Métodos de HashMapIterar con keySet()Iterar con entrySet()HashMap AnidadoResumen - Gestionar AlmacénResumen - Operaciones de HashMap6Flujo de Control Avanzado
Sentencias EtiquetadasExpresión SwitchCoincidencia de PatronesCláusulas de GuardiaResumen - Flujo de Control9Proyecto - Contador de Palabras Únicas
Entrada y Almacenamiento de TextoProcesamiento de Palabras