📜 Megaguía de Patrones Regex para Sublime Text

📜 Megaguía de Patrones Regex: El Compendio Definitivo

🌟 Introducción

¡La biblia regex que estabas esperando! Esta guía cubre todos los patrones esenciales organizados por categorías, con ejemplos claros y listos para usar en Sublime Text.


📅 Fechas y Horas

🔹 Formatos Comunes

# DD/MM/AAAA o DD-MM-AAAA
^(0?[1-9]|[12][0-9]|3[01])[-/](0?[1-9]|1[0-2])[-/](\d{4})$

# AAAA-MM-DD (ISO)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$

# Fecha con nombre de mes
(0?[1-9]|[12][0-9]|3[01])\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s\d{4}

🔹 Timestamps

# ISO 8601 completo
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})?$

# Hora 12/24h
^(1[0-2]|0?[1-9]):[0-5][0-9]\s?(AM|PM)?$|^([01]?[0-9]|2[0-3]):[0-5][0-9]$

🌍 Geolocalización

🔹 Coordenadas

# Decimales
^-?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*-?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$

# Grados-Minutos-Segundos
^\d{1,3}°\d{1,2}'\d{1,2}(?:\.\d+)?"[NS]\s\d{1,3}°\d{1,2}'\d{1,2}(?:\.\d+)?"[EW]$

🔹 Bounding Boxes

-?\d{1,3}\.\d{1,6},\s*-?\d{1,3}\.\d{1,6}\s*;\s*-?\d{1,3}\.\d{1,6},\s*-?\d{1,3}\.\d{1,6}

💻 Redes y Direcciones

🔹 IPs y URLs

# IPv4 con puerto
^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(?::\d{1,5})?$

# URL Completa
^(https?:\/\/)?(www\.)?[a-z0-9-]+(\.[a-z]{2,}){1,3}(:\d{2,5})?([?\/#][^\s]*)?$

🔹 DNS y Correos

# Nombre de dominio válido
^([a-zA-Z0-9]+(-[a-zA-Z0-9]+)*\.)+[a-zA-Z]{2,}$

# Email RFC 5322
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])*")@[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]*[a-z0-9])?)*$

🔢 Datos Numéricos

🔹 Formatos Numéricos

# Enteros con separadores
^[+-]?\d{1,3}(?:,\d{3})*$

# Decimales
^[+-]?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?$

# Porcentajes
^\d{1,3}%$

🔹 Financieros

# Monedas
^\$?\d{1,3}(?:,\d{3})*(?:\.\d{2})?$|^€?\d{1,3}(?:\.\d{3})*(?:,\d{2})?$

📝 Texto y Documentos

🔹 Estructuras Comunes

# Palíndromos de 5-7 letras
^(\w)(\w)(\w)\w?\3\2\1$

# Palabras repetidas
\b(\w+)\s+\1\b

# Texto entre delimitadores
(?s)(?<=<!--START-->).*?(?=<!--END-->)

🔹 Limpieza de Texto

# Espacios múltiples
\s{2,}

# Caracteres no ASCII
[^\x00-\x7F]

🛡️ Seguridad y Validación

🔹 Contraseñas

# Complejidad alta
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

🔹 Prevención de Ataques

# Inyección SQL
\b(UNION\s+SELECT|DROP\s+TABLE|INSERT\s+INTO|SELECT\s+\*)\b

# XSS básico
<(script|iframe|img)[^>]*>

🧰 Kit de Emergencia Regex

🔹 Búsquedas Rápidas

# Hashtags y menciones
(?:^|\s)([#@][\w-]+)

# Teléfonos internacionales
^\+(?:[0-9]\s?){6,14}[0-9]$

# MAC Address
^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$

🔹 Transformaciones Comunes

# CSV a Pipe
s/,(?=(?:[^"]*"[^"]*")*[^"]*$)/|/g

# Normalizar saltos de línea
\r?\n

🎯 Ejercicios con Data.txt

# 1. Transacciones sospechosas
\$(1\d{3}|[2-4]\d{3}|5000)(?=\s|$)

# 2. URLs vulnerables
https?:\/\/[^\s]+\?[^\s]*\b(?:id=\d+|token=[^&\s]+)

# 3. Fechas inconsistentes
\b\d{4}[-./]\d{1,2}[-./]\d{1,2}\b|\b\d{1,2}[-./]\d{1,2}[-./]\d{4}\b