1. ¿Qué es una expresión regular? + Operadores básicos
Formulario de ejemplo
Expresión regular y explicación
Una expresión regular (RegEx) es una secuencia de caracteres que define un patrón de búsqueda dentro de una cadena de texto. Sirve para buscar, validar o extraer información.
En el patrón ^Hola \d+$:
| Operador | Significado |
|---|---|
^ | Inicio de la cadena |
$ | Fin de la cadena |
. | Cualquier carácter (uno) |
* | 0 o más repeticiones |
+ | 1 o más repeticiones |
? | 0 o 1 (opcional) |
\d | Un dígito (0-9) |
\w | Letra, dígito o _ |
[abc] | Conjunto: a, b o c |
(a|b) | Alternativa: a o b |
2. Validación de letras (nombres)
Formulario de ejemplo
Expresión regular y explicación
Esta RegEx valida que el texto contenga únicamente letras y espacios, incluyendo vocales acentuadas y la letra ñ.
^y$aseguran que toda la cadena cumpla el patrón.[ ... ]es un conjunto de caracteres: cualquiera dentro de los corchetes es válido.A-Zya-zson rangos alfabéticos.ÁÉÍÓÚáéíóúÑñagregan letras propias del español.- El espacio
" "dentro de los corchetes permite nombres compuestos. +exige uno o más caracteres (no permite vacío).
Si se quisiera un mínimo o máximo de caracteres, se puede reemplazar el + por {2,40}.
3. Validación de números (teléfono colombiano)
Formulario de ejemplo
Expresión regular y explicación
En Colombia los celulares tienen 10 dígitos e inician con 3. Esta RegEx lo valida estrictamente.
^3: la cadena debe empezar con el dígito 3.\d: cualquier dígito (0-9). Equivale a[0-9].{9}: exactamente 9 repeticiones del elemento anterior (\d).$: fin de la cadena — no se permiten más caracteres.
Otras variantes útiles:
| Patrón | Valida |
|---|---|
^\d+$ | Solo dígitos, sin tamaño fijo |
^\d{1,3}$ | Entre 1 y 3 dígitos (edad) |
^-?\d+(\.\d+)?$ | Número decimal con signo |
4. Validación de correos electrónicos
Formulario de ejemplo
usuario@dominio.tldExpresión regular y explicación
Un correo tiene tres bloques: parte local · @ · dominio · . · TLD.
[\w.+-]+: parte local — letras, dígitos, "_", ".", "+" o "-".@: el signo arroba, obligatorio.[A-Za-z0-9-]+: dominio — letras, dígitos y guiones.\.: un punto literal (con\escapamos el operador).[A-Za-z.]{2,}: TLD de 2 o más caracteres (soportacom,co,com.co).
Importante: No existe una RegEx "perfecta" para validar correos según el RFC 5322, pero esta cubre el 99% de casos reales.
5. Secuencias binarias sin "11" consecutivos
Formulario de ejemplo
0, 10, 0101001. Rechaza si aparece 11.Expresión regular y explicación
Queremos cadenas que solo tengan 0 y 1, pero que nunca contengan la subcadena 11.
^: inicio de la cadena.(?!.*11): lookahead negativo. Antes de seguir, "mira hacia adelante" y asegura que no exista ningún11en toda la cadena. Si lo encuentra, falla.[01]+: una o más apariciones de0o1.$: fin de la cadena.
Alternativa equivalente (sin lookahead, usando teoría de autómatas):
Esto describe el lenguaje: "cualquier cantidad de 0s, seguidos de bloques de un 1 + uno o más 0s, y opcionalmente un 1 al final" — es imposible producir 11 con ese patrón.
6. Detectar y extraer correos dentro de un texto
Formulario de ejemplo
Expresión regular y explicación
A diferencia del paso 4, ahora no usamos ^ ni $ porque no validamos toda la cadena: queremos extraer correos en cualquier posición del texto.
- La bandera global
ghace que la búsqueda continúe después de cada coincidencia y devuelva todas. - El patrón es el mismo del paso 4 pero sin anclas, así puede encajar dentro de un texto más largo.
- En JavaScript usamos
String.matchAll(regex)oString.match(regex)con la banderagpara obtener el arreglo de resultados.
Ejemplo en código:
Las coincidencias se resaltan en verde en el panel izquierdo.