Cheatsheet de REGEX

Sintaxis base, anclas y usos típicos.

Filtra por patrón, explicación o sección.

🧱 Básicos

. Cualquier carácter (excepto salto de línea, salvo flag 's')
\d Dígito (0-9)
\D No dígito
\w Carácter de palabra (letras, números, _)
\W No carácter de palabra
\s Espacio en blanco (espacio, tab, salto...)
\S No espacio en blanco

🔢 Cuantificadores

a* 0 o más veces
a+ 1 o más veces
a? 0 o 1 vez (opcional)
a{3} exactamente 3 veces
a{2,} 2 o más veces
a{2,5} entre 2 y 5 veces
a+? no codicioso (lo mínimo posible)
a*? 0 o más pero no codicioso

🎯 Anclas y límites

^abc$ coincide EXACTAMENTE con 'abc'. Muy usado en validaciones web
^ inicio de cadena/línea
$ fin de cadena/línea
\bword\b palabra completa 'word'
\Babc sin límite de palabra

🧪 Conjuntos y rangos

[abc] cualquiera de a, b o c
[a-z] letra minúscula
[A-Z] letra mayúscula
[0-9] dígito
[a-zA-Z] cualquier letra
[^0-9] cualquier cosa menos dígitos

📦 Grupos y alternancia

(abc) grupo de captura
(?:abc) grupo sin captura
(abc|def) abc o def
(ab){2} repite el grupo 2 veces → abab
\1 usa lo capturado en el grupo 1
(?=abc) lookahead positivo
(?!abc) lookahead negativo

⚙️ Flags (modificadores)

/.../g global (todas las coincidencias)
/.../i ignora mayús/minús
/.../m ^ y $ por línea
/.../s '.' incluye saltos de línea
/.../u unicode

💻 En código JavaScript

/^\d+$/ .test(valor) validar solo números
str.match(/abc/gi) obtener todas las coincidencias 'abc'
str.replace(/\s+/g, ' ') reducir espacios múltiples
str.split(/,\s*/) dividir por coma opcionalmente con espacios
new RegExp('^' + user + '$') regex dinámica en JS

Empieza por patrones sencillos, escapa caracteres especiales y documenta las regex largas.