Deja de escribir regex desde cero. Aquí hay 20 patrones probados.
Prueba patrones con nuestro Regex Tester →
Patrones de validación
1. Email Address
^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$Coincide: user@example.com, john.doe+tag@company.co.uk
No coincide: user@, @example.com, user@.com
2. URL (HTTP/HTTPS)
^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*)$Coincide: https://example.com, http://www.site.co.uk/path?q=1
3. Phone Number (International E.164)
^\+[1-9]\d{1,14}$Coincide: +14155552671, +442071234567
Para números internacionales. US: ver patrón #4.
4. US Phone Number
^(\+1)?[\s.-]?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$Coincide: (415) 555-2671, 415-555-2671, +1 415.555.2671
5. Strong Password
^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$Requisitos: 8+ caracteres, mayúscula, minúscula, dígito, especial.
Coincide: MyP@ss1word | No coincide: password, 12345678
6. IPv4 Address
^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$Coincide: 192.168.1.1, 10.0.0.255
No coincide: 256.1.1.1, 192.168.1
7. IPv6 Address (Simplified)
^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$Direcciones IPv6 completas como 2001:0db8:85a3:0000:0000:8a2e:0370:7334
8. Date (YYYY-MM-DD)
^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$Coincide: 2026-01-15, 2025-12-31
No coincide: 2026-13-01, 2026-00-15
Patrones de extracción
9. Extract All Emails from Text
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}Con flag global (g) encuentra todos los emails.
10. Extract All URLs from Text
https?:\/\/[^\s<>\"']+Patrón URL más simple para extracción.
11. Extract HTML Tags
<([a-zA-Z][a-zA-Z0-9]*)\b[^>]*>(.*?)<\/\1>Captura nombre de etiqueta y contenido.
Para HTML complejo: usar DOMParser o cheerio.
12. Extract Numbers from String
-?\d+\.?\d*Enteros y decimales. 42, -3.14, 0.5
13. Extract Hashtags
#[a-zA-Z0-9_]+Coincide: #javascript, #dev_tools, #React18
Patrones de formato
14. Credit Card Number (Basic)
^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13}|6(?:011|5[0-9]{2})[0-9]{12})$Coincide: Visa, Mastercard, Amex, Discover.
En producción: usar procesador de pagos.
15. Hex Color Code
^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6}|[0-9A-Fa-f]{8})$Coincide: #FFF, #FF5733, #FF573380
16. Semantic Version (SemVer)
^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$Coincide: 1.0.0, 2.1.3-beta.1, 1.0.0+build.123
17. UUID (Any Version)
^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$Coincide: f47ac10b-58cc-4372-a567-0e02b2c3d479
Procesamiento de texto
18. Trim Whitespace (Leading + Trailing)
^\s+|\s+$Con replace para trim: text.replace(/^\\s+|\\s+$/g, '')
19. Multiple Spaces to Single Space
\s{2,}Reemplazar por espacio único: text.replace(/\\s{2,}/g, ' ')
20. Markdown Bold Text
\*\*(.+?)\*\*Captura texto entre **.
Usar estos patrones en código
// JavaScript
const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
emailRegex.test('user@example.com'); // true
// Python
import re
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
re.match(pattern, 'user@example.com') # Match object
// Java
Pattern pattern = Pattern.compile("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$");
pattern.matcher("user@example.com").matches(); // truePrueba todos los patrones con Regex Tester →
Preguntas frecuentes
¿Estos patrones son compatibles con todos los lenguajes?
Sí, sintaxis regex estándar para JS, Python, Java, C#, Go, PHP, Ruby.
¿Usar regex para validar email en producción?
Para verificación básica sirve. Validación real solo con email de confirmación.
¿Diferencia entre cuantificadores greedy y lazy?
Greedy (*, +, ?): máxima coincidencia. Lazy (*?, +?, ??): mínima.