Saltar al contenido
🛠️ToolsShed

Regex Cheat Sheet

Referencia de expresión regular interactiva con pruebas de patrones en vivo y ejemplos copiables con un clic.

Probador en Vivo

Anchors

PatrónDescripción
^Start of string / line
$End of string / line
\bWord boundary
\BNon-word boundary
\AStart of string only
\ZEnd of string only

Quantifiers

PatrónDescripción
*0 or more times
+1 or more times
?0 or 1 time (optional)
{n}Exactly n times
{n,}n or more times
{n,m}Between n and m times
*?Lazy 0 or more
+?Lazy 1 or more

Character Classes

PatrónDescripción
.Any character except newline
\dDigit [0-9]
\DNon-digit
\wWord char [a-zA-Z0-9_]
\WNon-word character
\sWhitespace
\SNon-whitespace
[abc]Character set — a, b, or c
[^abc]Negated set — not a, b, or c
[a-z]Character range

Groups & Alternation

PatrónDescripción
(abc)Capturing group
(?:abc)Non-capturing group
(?<name>abc)Named capturing group
(?=abc)Positive lookahead
(?!abc)Negative lookahead
(?<=abc)Positive lookbehind
(?<!abc)Negative lookbehind
a|bAlternation — a or b

Flags

PatrónDescripción
gGlobal — find all matches
iCase-insensitive
mMultiline — ^ and $ match line boundaries
sDotall — . matches newline too
uUnicode mode
ySticky — match at exact position

Common Patterns

PatrónDescripción
^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,}$Email address
https?:\/\/[\w\-._~:/?#[\]@!$&'()*+,;=%]+URL (http/https)
^\+?[1-9]\d{1,14}$Phone number (E.164)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$Date (YYYY-MM-DD)
^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$IPv4 address
^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$UUID v4
^#(?:[0-9a-fA-F]{3}){1,2}$Hex color code
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$Strong password (min 8 chars, upper+lower+digit)

Haz clic en un patrón para cargarlo en el probador

Acerca de esta herramienta

Las expresiones regulares son un lenguaje de coincidencia de patrones poderoso utilizado en programación, procesamiento de datos, análisis de texto y aplicaciones innumerables. Aprender regex puede parecer abrumador debido a su sintaxis concisa y numerosos caracteres especiales, pero comprender los fundamentos——anclajes, cuantificadores, clases de caracteres, grupos y búsquedas——desbloquea la capacidad de resolver problemas de texto complejos elegantemente. Esta Hoja de Trucos de Regex reúne los patrones y conceptos más esenciales en una referencia interactiva.

Simplemente examina los patrones y conceptos curados agrupados por categoría: anclajes (^, $, \b), cuantificadores (*, +, ?, {n,m}), clases de caracteres ([...], \d, \s), grupos y capturas (..., ?:...), y búsquedas (lookaheads y lookbehinds positivos y negativos). El probador de patrones en directo te permite ingresar tu propia cadena de prueba y regex para ver coincidencias resaltadas en tiempo real. Copia cualquier patrón con un solo clic y pégalo directamente en tu código o herramienta de depuración de regex.

Marca esta herramienta como favorita cuando necesites un repaso rápido de la sintaxis. Ya sea validando direcciones de correo electrónico, analizando archivos de registro, extrayendo datos de HTML, limpiando cadenas desordenadas o buscando código, regex es indispensable. Los patrones mostrados son compatibles con la mayoría de lenguajes (JavaScript, Python, Java, Go, etc.), aunque algunas características avanzadas varían ligeramente entre implementaciones.

Preguntas Frecuentes

Implementación de Código

import re

# Common regex patterns
email_pattern = r'^[w.-]+@[w.-]+.[a-zA-Z]{2,}$'
url_pattern = r'https?://[w-._~:/?#[]@!$&'()*+,;=%]+'
ipv4_pattern = r'^(?:(?:25[0-5]|2[0-4]d|[01]?dd?).){3}(?:25[0-5]|2[0-4]d|[01]?dd?)$'

# Test email
email = "user@example.com"
if re.match(email_pattern, email):
    print(f"{email} is valid")

# Find all matches
text = "Contact us at info@example.com or support@test.org"
emails = re.findall(r'[w.-]+@[w.-]+.[a-zA-Z]{2,}', text)
print("Found emails:", emails)

# Named groups
date_text = "Today is 2024-03-15"
match = re.search(r'(?P<year>d{4})-(?P<month>d{2})-(?P<day>d{2})', date_text)
if match:
    print(f"Year: {match.group('year')}, Month: {match.group('month')}")

# Substitution
result = re.sub(r's+', ' ', "hello   world   foo").strip()
print(result)  # "hello world foo"

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.