Skip to content
Chuleta de regex
Tools

Chuleta de regex

Nuevo

Referencia con búsqueda de los tokens y flags de las expresiones regulares.

Live regex tester

Type a pattern and a test string — matches highlight instantly, with every capture group broken out below.

/ /
Flags
Matches
Capture groups

Common regex patterns

Battle-tested patterns — load one into the tester to see it run, or copy it straight out.

Email address
[\w.+-]+@[\w-]+\.[\w.-]+
URL (http/https)
https?:\/\/[^\s]+
US phone number
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Date (YYYY-MM-DD)
(\d{4})-(\d{2})-(\d{2})
Time (24-hour)
([01]?\d|2[0-3]):[0-5]\d
IPv4 address
\b(?:\d{1,3}\.){3}\d{1,3}\b
Hex color
#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b
Slug / username
[a-z0-9]+(?:-[a-z0-9]+)*
Whole number / integer
-?\d+
Strong password (8+, mixed)
(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}
Duplicate word
\b(\w+)\s+\1\b
Trailing whitespace
[ \t]+$

Regex cheat sheet

Every token, grouped with a quick example. Search by symbol or keyword; click any token to copy it.

Regex flavors: JavaScript, Python, Java, PCRE & grep

The tester above runs JavaScript regex. Most syntax is shared — here's what differs between engines.

FeatureJavaScriptPython (re)JavaPCRE / grep
Named group(?<name>…)(?P<name>…)(?<name>…)(?P<name>…)
Dotall (. matches \n)s flagre.DOTALL / (?s)Pattern.DOTALL(?s)
Ignore casei flagre.IGNORECASE / (?i)(?i) flag(?i) / grep -i
Lookbehind(?<=…) ES2018+SupportedSupportedgrep -P only
Backslash in source/\d/ literalr"\d" raw string"\\d" doubled\d
Find every matchstr.matchAll(/…/g)re.findall()Matcher.find()grep -o
POSIX class [[:digit:]]use \d insteaduse \d insteadsupportedsupported

Runs entirely in your browser. Nothing is uploaded.

Un cheat sheet de regex con ejemplos — y un tester en vivo

Este cheat sheet de regex pone cada token de expresión regular a un solo clic — y lo combina con un tester en vivo para que puedas probar un patrón en el mismo momento en que lo buscas. Escribe un patrón, elige tus flags, pega un texto de prueba y las coincidencias se resaltan al instante mientras cada grupo de captura se desglosa justo debajo.

No hay nada que instalar ni cuenta que crear: toda la referencia de expresiones regulares se ejecuta en tu navegador, por lo que el texto que pruebas nunca se sube a ningún servidor. Sin anuncios, sin muro de inicio de sesión, sin límites de tamaño en tus cadenas de prueba.

Cada token de regex, agrupado con ejemplos

La referencia cubre la sintaxis que realmente usas: clases de caracteres (\d, \w, \s y conjuntos personalizados como [a-z]), anchors y límites (^, $, \b), cuantificadores (*, +, ?, {n,m} y sus formas lazy), grupos y alternancia, lookahead y lookbehind, las flags g i m s u y, y los escapes necesarios para puntos y barras literales.

Cada entrada incluye un ejemplo corto y concreto — \bcat\b coincide con la palabra 'cat' pero no con 'category' — para que el significado quede claro. Busca los tokens de regex por símbolo o palabra clave y haz clic en cualquiera para copiarlo.

Prueba tu patrón mientras lo construyes

Un cheat sheet estático no puede decirte si tu patrón realmente funciona. El tester de regex integrado compila tu expresión en tiempo real, resalta cada coincidencia en el texto de muestra y lista los grupos de captura numerados y con nombre para cada una.

Activa y desactiva las flags global, case-insensitive, multiline, dotall, Unicode y sticky para ver cómo cambian los resultados. Si un patrón es inválido obtienes un mensaje de error en lenguaje claro en lugar de un fallo silencioso — y ver un patrón coincidir en tiempo real es la forma más rápida de aprender regex.

Patrones de regex comunes, listos para copiar

Algunos patrones aparecen una y otra vez — direcciones de email, URLs, números de teléfono, fechas ISO, direcciones IPv4, colores hexadecimales y comprobaciones de contraseña segura. La sección de Patrones comunes te ofrece una versión revisada de cada uno: cárgalo directamente en el tester para verlo funcionar con texto de ejemplo, o cópialo en tu código.

Son puntos de partida prácticos que puedes adaptar en lugar de reglas universales, y precisamente por eso importa probarlos con tus propios datos.

Cómo se compara con regex101.com y regexr.com

regex101.com es la herramienta de regex dedicada más popular de la web — y con razón. Soporta seis dialectos de regex (PCRE, Python re, Golang, Java, .NET y JavaScript), muestra un panel de explicación token a token y lleva un historial de coincidencias. Si estás depurando un patrón de producción complejo o necesitas verificar que un patrón se comporta igual en PHP y Python, regex101 es la herramienta adecuada. regexr.com ofrece una experiencia similar con una biblioteca pública de patrones aportados por la comunidad.

Esta página de UtiloKit ocupa un lugar diferente en el flujo de trabajo. Combina una tabla de referencia de tokens que puedes buscar con un tester en vivo en la misma pantalla, optimizada para la situación habitual en la que sabes más o menos lo que necesitas pero no recuerdas la sintaxis exacta. Llegas, buscas el token, pegas una cadena de prueba rápida y vuelves a tu editor — sin cambiar de pestaña, sin cuenta, sin anuncios. Para los desarrolladores que visitan regex101.com docenas de veces al día solo para recordar si el lookbehind usa (?<=…) o (?<!…), tener una referencia con búsqueda dedicada es considerablemente más rápido. Usa ambas: regex101 para depuración profunda, esta página para consultas rápidas.

Dialectos de regex: JavaScript, Python, Java, PCRE y grep

La mayor parte de la sintaxis regex es portable, pero los motores difieren en los detalles. El tester aquí usa regex de JavaScript, el mismo dialecto que Node.js y el navegador. El módulo re de Python requiere cadenas raw como r"\d+" y nombra los grupos con (?P<nombre>…); Java necesita barras invertidas dobles en literales de cadena; PCRE (PHP y grep -P) es el más completo en funcionalidades; y POSIX grep -E tiene sus propias peculiaridades de escape.

La tabla de dialectos detalla grupos con nombre, dotall, insensibilidad a mayúsculas, lookbehind y 'buscar todo' en cada motor, para que puedas trasladar un patrón del cheat sheet de Python a JavaScript — o al revés — sin sorpresas.

Greedy vs lazy, y otros errores comunes

Dos cosas confunden a casi todo el mundo. Primero, los cuantificadores son greedy (voraces): .+ captura todo lo que puede, así que para coincidir con una sola etiqueta HTML normalmente querrás el lazy .+?. Segundo, olvidar escapar metacaracteres — un . suelto coincide con cualquier carácter, mientras que \. coincide con un punto literal, por lo que un regex de precios necesita \d+\.\d{2}.

Mantén el cheat sheet abierto mientras trabajas y estas situaciones dejarán de sorprenderte.

Privado, instantáneo y gratis

No hay nada que instalar ni cuenta que crear. Cada búsqueda, cada coincidencia y cada copia ocurre localmente en tu navegador — tus patrones y datos de prueba nunca salen de tu dispositivo. Guarda este cheat sheet de regex en tus favoritos y consúltalo cada vez que necesites recordar un token o verificar un patrón.

Frequently asked questions

¿Qué es una expresión regular con un ejemplo?

Una expresión regular (regex) es un patrón compacto que describe un conjunto de cadenas de texto, utilizado para buscar, coincidir y reemplazar texto. Por ejemplo, el patrón \d{3}-\d{4} coincide con un fragmento de teléfono como 555-1234, porque \d significa 'un dígito' y {3} significa 'exactamente tres de ellos'. Las regex impulsan el buscar-y-reemplazar, la validación de formularios y el análisis de registros en casi todos los lenguajes de programación y editores de código. El tester en vivo en la parte superior de esta página te permite probar cualquier patrón al instante.

¿Cuáles son los tokens básicos de regex?

Los elementos fundamentales son: . (cualquier carácter excepto nueva línea), \d (un dígito), \w (un carácter de palabra — letra, dígito o guión bajo), \s (espacio en blanco), los anchors ^ (inicio) y $ (fin), y los cuantificadores * (cero o más), + (uno o más) y ? (opcional). Así, \w+ coincide con una palabra completa y \d+ con un número completo como 2024. Combínalos — ^\d+$ coincide con una línea que solo contiene dígitos. Cada token en este cheat sheet incluye un ejemplo que puedes copiar.

¿Qué significan \d, \w y \s?

\d coincide con cualquier dígito del 0 al 9; \w coincide con un carácter de palabra (a–z, A–Z, 0–9 o _); \s coincide con espacio en blanco (espacio, tabulación o nueva línea). Sus versiones en mayúscula son las negaciones: \D es un no-dígito, \W un carácter que no es de palabra y \S un carácter que no es espacio. Por ejemplo, en el texto 'a5 b', \d coincide con 5, \w coincide con a, 5 y b, y \s coincide con el espacio entre ellos. Estas tres clases abreviadas cubren la gran mayoría de los patrones regex del día a día.

¿Qué son los anchors en regex?

Los anchors coinciden con una posición en lugar de un carácter. ^ coincide con el inicio de la cadena (o cada línea con el flag m), $ coincide con el final, \b coincide con un límite de palabra y \B con un no-límite. Por ejemplo, ^\d+$ coincide con una cadena formada solo por dígitos, y \bcat\b coincide con la palabra 'cat' pero no con la 'cat' dentro de 'category'. Los anchors se malinterpretan frecuentemente como coincidentes de caracteres — en realidad coinciden con posiciones en el texto, no con caracteres específicos.

¿Qué son los cuantificadores en regex?

Los cuantificadores indican cuántas veces puede repetirse el token anterior: * es cero o más, + es uno o más, ? es cero o uno (opcional), {n} es exactamente n, {n,} es n o más, y {n,m} está entre n y m. Son greedy por defecto (coinciden con tanto como sea posible); añade un ? para hacerlos lazy. Por ejemplo, \d{1,3} coincide con 1 a 3 dígitos, y el lazy .+? coincide con lo menos posible. Los cuantificadores lazy son esenciales cuando se buscan etiquetas HTML o cadenas entre comillas.

¿Qué son los grupos y grupos de captura en regex?

Los paréntesis (…) crean un grupo de captura que puedes extraer o reutilizar — (\d{4})-(\d{2}) captura el año en el grupo 1 y el mes en el grupo 2 de '2024-06'. Usa (?:…) para un grupo sin captura cuando solo necesitas agrupar para un cuantificador, y (?<nombre>…) para un grupo con nombre como (?<año>\d{4}). Una retroreferencia como \1 vuelve a coincidir con lo que capturó el grupo 1, por lo que (\w)\1 encuentra una letra doble — la 'll' en 'hello'.

¿Qué es un lookahead y un lookbehind?

Los lookarounds verifican que un texto está (o no está) junto a tu coincidencia sin consumirlo. (?=…) es un lookahead positivo, (?!…) un lookahead negativo, (?<=…) un lookbehind positivo y (?<!…) un lookbehind negativo. Por ejemplo, \d+(?=px) coincide con el 5 en '5px' pero deja fuera el 'px', y (?<=\$)\d+ coincide con el 9 en '$9' al requerir un signo de dólar precedente. Los lookarounds son una de las características que separan los motores de regex modernos del grep POSIX.

¿Qué son los flags de regex?

Los flags cambian cómo se aplica el patrón completo: g (global) encuentra cada coincidencia, i lo hace insensible a mayúsculas, m (multiline) hace que ^ y $ coincidan con cada línea, s (dotall) permite que . coincida con nuevas líneas, u activa el soporte completo de Unicode e y (sticky) ancla la coincidencia en una posición fija. En JavaScript se añaden después de la barra de cierre, así que /cat/gi coincide con 'Cat' y 'CAT' en cualquier parte del texto. El tester en esta página tiene botones de alternancia para cada flag para que puedas ver su efecto en tiempo real.

¿Cómo escribo un regex para email, número de teléfono o URL?

Patrones prácticos de inicio: email — [\w.+-]+@[\w-]+\.[\w.-]+ ; URL — https?:\/\/[^\s]+ ; teléfono (formato general) — \(?\d{2,3}\)?[-.\s]?\d{3,4}[-.\s]?\d{4}, que coincide tanto con 55-1234-5678 como con (55) 1234 5678. Son patrones pragmáticos, no exhaustivos — el estándar oficial de email es mucho más complejo — así que pruébalos siempre con tus datos reales usando el tester en vivo de arriba, donde cada uno está a un solo clic en la lista de Patrones comunes.

¿Cómo se escapan los caracteres especiales en regex?

Coloca una barra invertida antes de cualquier metacarácter para que coincida literalmente. Los caracteres que normalmente necesitan escape son . ^ $ * + ? ( ) [ ] { } | \ y /. Por ejemplo \. coincide con un punto literal y \$ con un signo de dólar, por lo que \d+\.\d{2} coincide con un precio como 19.99. Dentro de una clase de caracteres la mayoría de estos pierden su significado especial, así que [.] también coincide con un punto literal sin necesidad de escaparlo.

¿Los dialectos de regex difieren entre JavaScript, Python y Java?

La sintaxis central es compartida, pero los detalles difieren. JavaScript nombra los grupos (?<nombre>…) mientras que Python usa (?P<nombre>…); Python usa cadenas raw como r"\d+" y Java necesita barras invertidas dobles en literales de cadena ("\\d+"). Dotall es el flag s en JS, re.DOTALL en Python y Pattern.DOTALL en Java. La tabla de dialectos en esta página resume las diferencias para Python, Java, PCRE y grep para que puedas trasladar un patrón entre lenguajes con confianza.

¿Qué es una expresión regular en Python?

En Python, las expresiones regulares viven en el módulo integrado re. Normalmente escribes el patrón como una cadena raw y llamas a funciones como re.search, re.findall o re.sub — por ejemplo re.findall(r"\d+", "a1 b22") devuelve ['1', '22']. Los grupos con nombre usan (?P<nombre>…) y se leen con match.group('nombre'). La referencia de tokens en esta página se aplica directamente a regex de Python; solo difieren la API circundante y algunos nombres de flags respecto a JavaScript.

¿Cómo pruebo un regex?

Usa el tester en vivo en la parte superior de esta página: escribe tu patrón entre las barras, activa los flags que necesites y pega una cadena de prueba. Las coincidencias se resaltan en tiempo real, cada grupo de captura numerado y con nombre se desglosa abajo, y un patrón inválido muestra un mensaje de error claro en lugar de fallar silenciosamente — todo ejecutándose localmente en tu navegador, así que nada de lo que pegues se sube. Herramientas como regex101.com y regexr.com funcionan de manera similar; esta combina la referencia y el tester en una sola página.

¿Cómo se compara esto con regex101.com y regexr.com?

regex101.com es el estándar de la industria para la depuración profunda de regex — soporta múltiples dialectos (PCRE, Python, Java, .NET, Golang) y ofrece una explicación detallada de cada token en tu patrón. regexr.com ofrece una experiencia similar con una biblioteca comunitaria de patrones. Ambas son excelentes herramientas especializadas. Este cheat sheet de UtiloKit es diferente: combina una tabla de referencia de tokens con un tester básico en vivo en la misma página, para que puedas buscar algo y verificarlo en segundos sin cambiar de pestaña. Para trabajo de regex de producción complejo, la comparación de dialectos y el depurador detallado de regex101.com son difíciles de superar; para consultas rápidas durante el desarrollo, esta página de referencia carga más rápido y no requiere navegación adicional.

¿Por qué se llaman expresiones regulares?

El nombre proviene de la teoría formal del lenguaje. En la década de 1950, el matemático Stephen Kleene describió los 'conjuntos regulares' — lenguajes que una máquina de estados finitos simple puede reconocer — y la notación que usó para ellos se conoció como expresión regular. Los motores de regex modernos añaden características como retroreferencias y lookarounds que van más allá de los lenguajes estrictamente 'regulares', pero el nombre histórico se mantuvo.