Pourquoi les alternatives sont importantes
Les alternatives permettent à une expression régulière de matcher un pattern ou un autre. Elles introduisent une logique OU indispensable pour accepter plusieurs formats valides.
Sans alternatives, de nombreuses regex devraient dupliquer des portions entières de pattern ou utiliser plusieurs expressions séparées.
Associées aux groupes, elles rendent les regex plus courtes, plus lisibles et plus faciles à faire évoluer.
Regroupez les alternatives lorsque c’est possible
Les alternatives sont généralement plus claires lorsqu’elles sont placées à l’intérieur d’un groupe.
Les groupes garantissent que l’opérateur OU s’applique uniquement à la partie souhaitée du pattern.
Des groupes bien placés rendent les expressions complexes plus lisibles et limitent les erreurs difficiles à détecter.
Évitez les répétitions inutiles
Lorsque plusieurs alternatives partagent un même préfixe ou suffixe, placez cette partie commune en dehors du groupe.
Cela réduit les répétitions, raccourcit la regex et facilite sa maintenance.
Une expression concise est généralement plus simple à comprendre et à déboguer.
L’ordre des alternatives est important
De nombreux moteurs regex évaluent les alternatives de gauche à droite.
Placer les alternatives les plus spécifiques ou les plus fréquentes en premier améliore souvent la lisibilité et peut parfois améliorer les performances.
Un mauvais ordre peut également produire des correspondances inattendues lorsqu’une alternative est le préfixe d’une autre.
Les erreurs fréquentes avec les alternatives
L’une des erreurs les plus courantes consiste à oublier les parenthèses, ce qui étend l’effet de l’opérateur OU à une partie plus grande du pattern.
Une autre erreur fréquente est de dupliquer des alternatives ou de créer plusieurs branches qui se chevauchent.
Tester chaque branche séparément permet généralement de détecter rapidement ces problèmes.
Les alternatives sont présentes dans de nombreuses regex
Les alternatives sont utilisées dans les regex d’e-mails, d’URL, de numéros de téléphone, de dates, d’identifiants et dans de nombreux autres cas pratiques.
Dès qu’une saisie peut respecter plusieurs formats valides, les alternatives constituent souvent la solution la plus simple.
Maîtriser les alternatives facilite la conception et la maintenance des expressions régulières complexes.
Alternative simple avec |
L’opérateur | signifie OU.
Le pattern chat|chien matche soit chat, soit chien.
chat|chien
Alternatives dans un groupe
Les alternatives sont souvent placées dans un groupe.
Cela permet de limiter la logique OU à une seule partie du pattern.
gr(?:is|ise)
Préfixe commun
Lorsque plusieurs alternatives partagent le même préfixe, placez ce texte commun en dehors du groupe.
Le pattern devient généralement plus court et plus facile à maintenir.
https?://(?:www\.)?(?:example|test)\.com
Suffixe commun
Plusieurs alternatives peuvent également partager le même suffixe.
Regrouper uniquement la partie variable évite les répétitions inutiles.
(?:chat|chien|oiseau)s
Priorité des alternatives
L’alternative possède une priorité faible.
Sans groupe, abc|def signifie matcher abc ou def, et non une portion commune entourant les deux.
^(chat|chien)$
Plusieurs alternatives
Vous pouvez définir plus de deux alternatives.
Gardez la liste lisible et regroupez les options proches lorsque c’est pertinent.
\b(?:rouge|vert|bleu|jaune)\b
Alternatives avec texte optionnel
Les alternatives permettent de représenter plusieurs formats optionnels.
C’est utile lorsqu’une saisie accepte plusieurs séparateurs ou préfixes.
^\d{4}(?:-|/|\.)\d{2}(?:-|/|\.)\d{2}$
Capturer l’alternative choisie
Un groupe capturant peut stocker l’alternative qui a été matchée.
C’est utile lorsque le code doit réagir différemment selon la branche reconnue.
\b(oui|non|peut-être)\b