Expresiones regulares en Java con ejemplos: para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Expresiones regulares en Java: guía completa para principiantes



Las expresiones regulares (regex) son una herramienta poderosa para buscar, extraer y reemplazar texto según un patrón. En Java, el trabajo con expresiones regulares se implementa a través del paquete java.util.regex. En este artículo, analizaremos los fundamentos de las expresiones regulares en Java, aprenderemos a usar las clases Pattern y Matcher, y veremos ejemplos prácticos.



1. Clases principales para trabajar con regex en Java



En Java, se utilizan dos clases principales para trabajar con expresiones regulares:



  • Pattern — representa una expresión regular compilada.
  • Matcher — realiza operaciones de búsqueda y coincidencia con el texto.


También existe un método conveniente String.matches(), que permite verificar rápidamente si una cadena coincide con un patrón, pero es menos flexible.



Ejemplo 1: Coincidencia simple



import java.util.regex.*;

public class RegexExample1 { public static void main(String[] args) { String text = "¡Hola, mundo! Java es el mejor lenguaje."; String pattern = "Java";

Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(text);

if (m.find()) { System.out.println("Palabra encontrada: " + m.group()); } else { System.out.println("No hay coincidencias"); } }}


Salida: Palabra encontrada: Java



2. Metacaracteres y clases de caracteres



Las expresiones regulares utilizan caracteres especiales (metacaracteres) para describir patrones:



  • . — cualquier carácter (excepto salto de línea)
  • \\d — dígito [0-9]
  • \\D — no dígito
  • \\w — letra, dígito o guion bajo [a-zA-Z0-9_]
  • \\W — no palabra
  • \\s — carácter de espacio en blanco
  • \\S — no carácter de espacio en blanco
  • [abc] — uno de los caracteres a, b o c
  • [^abc] — cualquier carácter excepto a, b, c


Ejemplo 2: Búsqueda de dígitos en el texto



import java.util.regex.*;

public class RegexExample2 { public static void main(String[] args) { String text = "Mi número: 123-456-7890"; String pattern = "\\\\d+"; // uno o más dígitos

Pattern p = Pattern.compile(pattern); Matcher m = p.matcher(text);

while (m.find()) { System.out.println("Número encontrado: " + m.group()); } }}


Salida:

Número encontrado: 123Número encontrado: 456Número encontrado: 7890


3. Cuantificadores y límites



Los cuantificadores indican cuántas veces debe repetirse un elemento del patrón:



  • * — 0 o más veces
  • + — 1 o más veces
  • ? — 0 o 1 vez
  • {n} — exactamente n veces
  • {n,} — n o más veces
  • {n,m} — de n a m veces


Los límites ayudan a indicar dónde debe ubicarse el patrón:



  • ^ — inicio de la cadena
  • $ — final de la cadena
  • \\b — límite de palabra


Ejemplo 3: Validación de dirección de correo electrónico



import java.util.regex.*;

public class RegexExample3 { public static void main(String[] args) { String email = "user@example.com"; String pattern = "^[\\\\w.-]+@[\\\\w.-]+\\\\.\\\\w{2,}$";

boolean isValid = Pattern.matches(pattern, email); System.out.println("El correo es válido: " + isValid); }}


Salida: El correo es válido: true



4. Grupos de captura y reemplazo de texto



Los grupos de captura permiten extraer par

Blogs

Book Recommendations