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:
- 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. - 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ácter | Descripción |
---|---|
. | Coincide con cualquier carácter excepto nueva línea |
\d | Coincide con cualquier dígito (0-9) |
\s | Coincide con cualquier espacio en blanco |
\w | Coincide 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:
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!