/blog/ · notas de campo de la caza

El Blog de Regex Hunter

Guías, estrategia de regex y hojas de referencia de Regex Hunter: artículos prácticos para escribir patrones que atrapen todos los objetivos y dejen libre el resto, con ejemplos en vivo.

/j|bu|oo/

atrapa

  • jefferson
  • buchanan
  • hoover

deja libre

  • fremont
  • dewey
  • gore
DestacadoGolf de regex

El golf de regex de xkcd: el puzzle detrás del cómic 1313

Cómo el cómic de xkcd sobre golf de regex inició un género de puzzles, cómo lo resolvió Peter Norvig y dónde jugar un nuevo puzzle de golf de regex cada día.

Logo de Regex HunterRegex HunterLeer artículo
Mostrando 1–6 de 15 artículos más · 16 en total

/^key=[^=]*$/

key=valuekey=key=42key=on·key=a=bkeyvaluek=v

Guías

Backtracking catastrófico: por qué una regex puede colgarse

Un patrón de 7 caracteres puede tardar segundos con una entrada de 30 caracteres, y horas con una de 40. Cómo funciona el backtracking, por qué los cuantificadores anidados como (a+)+ explotan, las caídas que provocó en Stack Overflow y Cloudflare, y las reescrituras que hacen seguro un patrón.

Logo de Regex HunterRegex Hunter

/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/

Secret123aB3defghTr0ub4dor9Lives_cat·secret123SECRET123SecretpassAb1

Patrones

Reglas de contraseñas con lookaheads en regex (y cuándo no usarlos)

Cómo comprobar “al menos una mayúscula, un dígito y ocho caracteres” en una sola regex con lookaheads, por qué la versión sin orden fijo los necesita, las trampas de los patrones habituales y por qué comprobar cada regla por separado suele ser mejor diseño.

Logo de Regex HunterRegex Hunter

/^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/

2026-10-131999-12-312000-01-012026-02-28·26-10-132026/10/132026-1-313-10-2026

Guías

Grupos con nombre y grupos sin captura en regex

Los paréntesis hacen dos trabajos: agrupan y capturan. Cómo los grupos sin captura (?:…) agrupan sin capturar, cómo los grupos con nombre (?<year>…) hacen legibles las capturas, cómo volver a ellos con \k<name> y cómo lo escribe Python.

Logo de Regex HunterRegex Hunter

/^colou?r$/i

colorColourCOLORcolour·colrcoloursdiscolorkolor

Guías

Los modificadores de las regex explicados: i, g, m, s, u, y y d

Qué cambia cada modificador de las regex en JavaScript, con ejemplos interactivos: i para ignorar mayúsculas, g global (y la trampa de lastIndex), m multilínea, s dotAll, u unicode, y sticky y d indices, además de cómo expresa Python las mismas ideas.

Logo de Regex HunterRegex Hunter

/^\d{5}$/

90210100010213960614·9021902100ZIP 9021090210-1234

Guías

Anclas en regex: ^, $ y el modo multilínea explicados

^ y $ no coinciden con caracteres, sino con posiciones. Por qué un patrón sin anclas comprueba menos de lo que crees, qué cambia el modificador m, cómo trata el $ de Python un salto de línea final y cuándo usar \A y \z en su lugar.

Logo de Regex HunterRegex Hunter

/^[A-Z][a-z]+$/

ParisLimaOsloRome·parisPARISNew YorkR2D2

Guías

Clases de caracteres en regex: \d, \w, \s, [a-z] y sus trampas

Las clases de caracteres son lo más usado de las regex y lo más fácil de equivocar sin darse cuenta. Con qué coinciden de verdad [abc], [a-z], [^…], \d, \w y \s, y las trampas que esconden: [A-z], el guion suelto, el punto entre corchetes y los dígitos que no van del 0 al 9.

Logo de Regex HunterRegex Hunter

El tablero de hoy ya está disponible

Lee el truco. Ahora sal a cazar.

Atrapa todos los monstruos y deja libres a todos los inocentes, con el menor número de caracteres posible.