Expresiones regulares
¿Qué son las expresiones regulares?
Definición
Una expresión regular (abreviada frecuentemente como Regex o RegExp) es una secuencia de caracteres que forma un patrón de búsqueda. Se utiliza principalmente para encontrar, validar o reemplazar texto dentro de cadenas más grandes de manera muy flexible y potente.
En programación (ya sea en Java, Kotlin, PHP o SQL), actúan como una «máscara» o plantilla: defines cómo debe ser el texto que buscas (por ejemplo: «quiero algo que empiece por ‘A’ y termine con tres números») y el motor de regex busca todas las coincidencias.
Sintaxis Básica
Para entender los ejemplos, primero debes conocer algunos «metacaracteres» clave:
. (Punto): Coincide con cualquier carácter (excepto salto de línea).
\d: Coincide con cualquier dígito (0-9).
\w: Coincide con cualquier letra o número (alfanumérico).
^: Indica el inicio de la línea o cadena.
$: Indica el final de la línea o cadena.
*: El elemento anterior aparece 0 o más veces.
+: El elemento anterior aparece 1 o más veces.
?: El elemento anterior es opcional (aparece 0 o 1 vez).
{n}: El elemento anterior aparece exactamente n veces.
Ejemplos Prácticos
Aquí tienes varios ejemplos aplicados que te pueden servir para validaciones en formularios web o apps:
1. Validar un DNI español (simplificado)
Busca 8 números seguidos de una letra (mayúscula o minúscula).
Patrón:
^\d{8}[A-Za-z]$
Explicación:
^: Empieza aquí.
\d{8}: Exactamente 8 dígitos.
[A-Za-z]: Una letra (rango A-Z o a-z).
$: Termina aquí (no permite texto extra después).
2. Validar una matrícula de coche actual (España)
Busca 4 números seguidos de 3 letras mayúsculas (sin vocales, aunque el patrón general suele simplificarse).
Patrón:
^\d{4}\s?[BCDFGHJKLMNPRSTVWXYZ]{3}$
Explicación:
\d{4}: Cuatro dígitos iniciales (ej. 1234).
\s?: Un espacio opcional (puede estar o no).
[…]: Lista de letras permitidas (consonantes válidas en matrículas).
{3}: Exactamente 3 letras de ese conjunto.
3. Validar un correo electrónico (Básico)
Verifica que tenga texto, una arroba, más texto, un punto y una extensión de 2 a 4 letras.
Patrón: ^[\w\.-]+@[\w\.-]+\.\w{2,4}$
Explicación:
[\w\.-]+: Uno o más caracteres alfanuméricos, puntos o guiones.
@: El símbolo arroba literal.
\w{2,4}: La extensión del dominio (ej. .com, .es), de 2 a 4 letras.
4. Encontrar fechas en formato DD/MM/AAAA
Patrón:
\b(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\d{4}\b
Explicación:
\b: Límite de palabra (para no coger números dentro de otra cosa).
(0[1-9]|[12][0-9]|3[01]): Grupo complejo para el día. Acepta 01-09, 10-29 o 30-31.
/: Separador literal.
\d{4}: Año de 4 cifras.
Uso en tus lenguajes (Kotlin/SQL)
En SQL
SELECT * FROM usuarios WHERE email REGEXP '^[A-Za-z0-9._]+@gmail\\.com$'
En Kotlin:
val regex = Regex("^\\d{8}[A-Z]$")
if (regex.matches("12345678Z"))
{ println("DNI válido") }
En Java usando Pattern y Matcher
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
// Equivalente a: val regex = Regex("^\\d{8}[A-Z]$")
Pattern regex = Pattern.compile("^\\d{8}[A-Z]$");
// Equivalente a: regex.matches("12345678Z")
// En Java se crea un "Matcher" para realizar la comprobación
Matcher matcher = regex.matcher("12345678Z");
if (matcher.matches()) {
System.out.println("DNI válido");
}
}
}

Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.