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ón | Descripción | |
|---|---|---|
| ^ | Start of string / line | |
| $ | End of string / line | |
| \b | Word boundary | |
| \B | Non-word boundary | |
| \A | Start of string only | |
| \Z | End of string only |
Quantifiers
| Patrón | Descripció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ón | Descripción | |
|---|---|---|
| . | Any character except newline | |
| \d | Digit [0-9] | |
| \D | Non-digit | |
| \w | Word char [a-zA-Z0-9_] | |
| \W | Non-word character | |
| \s | Whitespace | |
| \S | Non-whitespace | |
| [abc] | Character set — a, b, or c | |
| [^abc] | Negated set — not a, b, or c | |
| [a-z] | Character range |
Groups & Alternation
| Patrón | Descripció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|b | Alternation — a or b |
Flags
| Patrón | Descripción | |
|---|---|---|
| g | Global — find all matches | |
| i | Case-insensitive | |
| m | Multiline — ^ and $ match line boundaries | |
| s | Dotall — . matches newline too | |
| u | Unicode mode | |
| y | Sticky — match at exact position |
Common Patterns
| Patrón | Descripció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.