¿Qué son las expresiones regulares en Java y cómo funcionan?

| Última modificación: 14 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Las expresiones regulares en Java nos permiten buscar, manipular y validar cadenas de texto por medio de patrones predefinidos. Si bien es un tema un poco complejo para programadores iniciales, es necesario aprenderlas porque te ayudarán a ahorrar mucho tiempo y esfuerzo. El día de hoy queremos contarte en qué consisten las expresiones regulares en Java y cómo puedes aprovechar su uso del mejor modo posible.

¿Qué son las expresiones regulares en Java (regex)?

Las expresiones regulares en Java o Regex son un patrón de búsqueda que nos permite identificar y procesar texto de de forma automatizada. Con Java, una expresión regular se representa como una cadena de caracteres, es decir, un objeto String, no obstante, no todas las cadenas pueden ser compiladas en expresiones regulares, ya que estas deben seguir una sintaxis determinada que incluye letras y meta caracteres.

Veamos un ejemplo: Si quieres validar si un texto contiene exactamente tres dígitos, en lugar de escribir código complejo para hacer esta verificación, puedes usar una expresión regular como esta:

String regex = "\\d{3}"; // Patrones de tres dígitos

Aquí, \\d indica cualquier dígito, y {3} significa que el dígito debe aparecer tres veces seguidas.

¿Cómo usar expresiones regulares en Java?

Para usar las expresiones regulares en Java es necesario trabajar con dos clases principales: Pattern y Matcher. El flujo básico de cómo funcionan es el siguiente:

  1. Definir el patrón: Usamos la clase Pattern para compilar una expresión regular en un patrón. Este patrón será el que usemos para hacer coincidir texto.
  2. Emparejar el patrón: La clase Matcher se utiliza para comprobar si una cadena cumple con el patrón especificado por la expresión regular.

Veamos un ejemplo de su implementación:

import java.util.regex.Pattern;
import java.util.regex.Matcher;

public class ExpresionesRegularesJava {
public static void main(String[] args) {
String texto = "12345";
String regex = "\\d{3}"; // Busca tres dígitos

// Compilar la expresión regular en un patrón
Pattern pattern = Pattern.compile(regex);
// Crear un matcher que comparará el patrón con el texto
Matcher matcher = pattern.matcher(texto);

// Validar si hay una coincidencia
if (matcher.find()) {
System.out.println("Coincidencia encontrada");
} else {
System.out.println("No hay coincidencia");
}
}
}

Este código lo que hace es verificar si la cadena texto contiene tres dígitos consecutivos.

Metacaracteres comunes en las expresiones regulares en Java

Las expresiones regulares en Java tienen una serie de metacaracteres que permiten definir patrones. Estos son algunos de los más habituales:

MetacarácterDescripción
.Coincide con cualquier carácter excepto nueva línea
\dCoincide con cualquier dígito (0-9)
\sCoincide con cualquier espacio en blanco
\wCoincide con cualquier letra, número o guión bajo
^Marca el inicio de una línea
$Marca el final de una línea
*Coincide con cero o más repeticiones
+Coincide con una o más repeticiones
?Coincide con cero o una repetición

Los metacaracteres en contexto: un ejemplo

Si quisieras buscar una secuencia de texto que contenga un número de teléfono en el formato 123-456-7890, podrías usar una expresión regular como esta:

String regex = "\\d{3}-\\d{3}-\\d{4}";

Esto buscará exactamente tres dígitos, seguidos de un guion, otros tres dígitos, otro guion, y finalmente cuatro dígitos.

Validar expresiones regulares en Java

Uno de los casos más comunes para usar expresiones regulares en Java es la validación de datos, como correos electrónicos, contraseñas o fechas. Veamos cómo validar una dirección de correo electrónico con una expresión regular:

String correo = "[email protected]";
String regex = "^[A-Za-z0-9+_.-]+@[A-Za-z0-9.-]+$";

Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(correo);

if (matcher.matches()) {
System.out.println("Correo válido");
} else {
System.out.println("Correo inválido");
}

Cuantificadores en las expresiones regulares

Los cuantificadores hacen posible definir cuántas veces debe aparecer un carácter o grupo de caracteres dentro de una cadena para que coincida con el patrón. Entre los cuantificadores más usados están:

expresiones regulares en Java
String regex = "\\d{2,4}"; // Coincide con 2 a 4 dígitos

Este patrón buscará números que tengan entre dos y cuatro dígitos.

Si te interesó este tema y quieres seguir trabajando con algunas temáticas relacionadas con el campo de la programación en Java, puedes inscribirte en nuestros bootcamps. Hoy te recomendamos el bootcamp java, con el cual aprenderás todo lo necesario para incursionar en este mundillo. ¡Date la oportunidad de seguir creciendo y avanzando!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado