/blog/ · carnet de chasse

Le Blog de Regex Hunter

Guides, stratégies regex et aide-mémoire de Regex Hunter : des articles pratiques pour écrire des motifs qui attrapent chaque cible et épargnent le reste, avec des exemples en direct.

/j|bu|oo/

à attraper

  • jefferson
  • buchanan
  • hoover

à épargner

  • fremont
  • dewey
  • gore
À la uneGolf de regex

Le golf de regex de xkcd : l'énigme derrière la BD 1313

Comment la BD xkcd sur le golf de regex a lancé un genre d'énigme, comment Peter Norvig l'a résolue, et où jouer à une nouvelle partie de golf de regex chaque jour.

Logo de Regex HunterRegex HunterLire l'article
1 à 6 sur 15 autres articles · 16 au total

/^key=[^=]*$/

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

Guides

Le backtracking catastrophique : pourquoi une regex peut se figer

Un motif de 7 caractères peut prendre des secondes sur une saisie de 30 caractères, et des heures sur une de 40. Comment fonctionne le backtracking, pourquoi les quantificateurs imbriqués comme (a+)+ explosent, les pannes que cela a causées chez Stack Overflow et Cloudflare, et les réécritures qui rendent un motif sûr.

Logo de Regex HunterRegex Hunter

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

Secret123aB3defghTr0ub4dor9Lives_cat·secret123SECRET123SecretpassAb1

Motifs

Règles de mot de passe avec des lookaheads en regex (et quand s'en passer)

Comment vérifier « au moins une majuscule, un chiffre, huit caractères » en une seule regex grâce aux lookaheads, pourquoi la version sans ordre imposé en a besoin, les pièges des motifs courants, et pourquoi vérifier chaque règle séparément est souvent la meilleure conception.

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

Guides

Groupes nommés et groupes non capturants en regex

Les parenthèses ont deux rôles : elles regroupent et elles capturent. Comment les groupes non capturants (?:…) regroupent sans capturer, comment les groupes nommés (?<year>…) rendent les captures lisibles, comment y faire référence avec \k<name>, et comment Python l'écrit.

Logo de Regex HunterRegex Hunter

/^colou?r$/i

colorColourCOLORcolour·colrcoloursdiscolorkolor

Guides

Les marqueurs de regex expliqués : i, g, m, s, u, y et d

Ce que change chaque marqueur (flag) de regex en JavaScript, avec des exemples interactifs : i pour ignorer la casse, g global (et le piège de lastIndex), m multiligne, s dotAll, u unicode, y sticky et d indices, plus la façon dont Python exprime les mêmes idées.

Logo de Regex HunterRegex Hunter

/^\d{5}$/

90210100010213960614·9021902100ZIP 9021090210-1234

Guides

Les ancres en regex : ^, $ et le mode multiligne expliqués

^ et $ ne correspondent pas à des caractères, mais à des positions. Pourquoi un motif sans ancres vérifie moins de choses que vous ne le pensez, ce que change le marqueur m, comment le $ de Python traite un saut de ligne final, et quand utiliser \A et \z à la place.

Logo de Regex HunterRegex Hunter

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

ParisLimaOsloRome·parisPARISNew YorkR2D2

Guides

Les classes de caractères en regex : \d, \w, \s, [a-z] et leurs pièges

Les classes de caractères sont la partie la plus utilisée des regex, et celle où l'on se trompe le plus facilement sans s'en rendre compte. Ce que [abc], [a-z], [^…], \d, \w et \s trouvent vraiment, et les pièges qui se cachent derrière : [A-z], le tiret égaré, le point entre crochets et les chiffres qui ne sont pas de 0 à 9.

Logo de Regex HunterRegex Hunter

Le plateau du jour est en ligne

Lisez l'astuce. Puis partez en chasse.

Attrapez chaque monstre, épargnez chaque innocent — avec le moins de caractères possible.