Testeur de regex
Testez une expression régulière sur un texte d'exemple et voyez les correspondances surlignées à mesure que vous tapez, avec les groupes de capture détaillés pour chacune.
Vos données ne quittent jamais votre navigateur. Cet outil fonctionne entièrement sur votre appareil.
Enter a regular expression to test.
Ce que font les drapeaux
Les drapeaux modifient la façon dont le motif entier s'applique. Les deux plus lourds de conséquences sont le drapeau global, qui trouve toutes les correspondances au lieu de s'arrêter à la première, et le drapeau multiligne, qui change le sens des ancres.
- g (global) — renvoie toutes les correspondances, pas seulement la première.
- i (insensible à la casse) — correspond quelle que soit la capitalisation.
- m (multiligne) — ^ et $ correspondent à chaque saut de ligne, et non aux seules extrémités de la chaîne.
- s (dotall) — permet à . de correspondre aux sauts de ligne, ce qu’il ne fait jamais autrement.
- u (unicode) — traite le motif en points de code Unicode, indispensable aux classes \p{...}.
- y (collant) — ne correspond qu’à la position courante exacte.
Les groupes de capture
Les parenthèses capturent le texte auquel elles correspondent, pour que vous puissiez l'extraire. Les groupes numérotés sont comptés d'après la position de leur parenthèse ouvrante ; les groupes nommés emploient la syntaxe (?<nom>...) et se relisent bien plus facilement six mois plus tard.
Un groupe qui n'a pas participé à la correspondance vaut undefined, et non une chaîne vide — une nuance qui compte lorsque le groupe est facultatif.
(?<annee>\d{4})-(?<mois>\d{2})Le retour arrière catastrophique
Un motif comportant des quantificateurs non bornés imbriqués, comme (\w+)+$, peut demander un temps exponentiel sur une entrée qui correspond presque. Le moteur essaie toutes les façons possibles de découper la chaîne avant d'abandonner.
C'est un véritable vecteur de déni de service lorsqu'une regex est appliquée à une saisie utilisateur, connu sous le nom de ReDoS. Ce testeur avertit quand il repère cette forme, et plafonne les correspondances à 1 000 pour que la page reste réactive.
Questions fréquentes
Quelle variante de regex est utilisée ici ?
Celle de JavaScript, puisque tout s'exécute dans votre navigateur. L'essentiel de la syntaxe est partagé avec PCRE, mais la prise en charge du retour arrière, la syntaxe des groupes nommés et les échappements de propriétés Unicode varient d'un langage à l'autre — vérifiez votre langage cible avant de recopier un motif.
Pourquoi mon motif ne trouve-t-il que la première correspondance ?
Le drapeau global n'est pas posé. Sans g, le moteur s'arrête à la première correspondance. Ce testeur énumère toujours toutes les correspondances pour que vous les voyiez, et affiche vos propres drapeaux séparément.
Comment faire correspondre un point ou une barre oblique littéraux ?
Échappez-les par une barre oblique inverse : \. correspond à un point littéral, et \/ à une barre oblique littérale. Un point non échappé correspond à n'importe quel caractère sauf un saut de ligne.
Pourquoi ma regex est-elle extrêmement lente ?
Presque toujours à cause d'un retour arrière catastrophique dû à des quantificateurs imbriqués comme (a+)+. Réécrivez le motif pour éviter d'imbriquer des répétitions non bornées, ou ancrez-le plus strictement afin de réduire le nombre de chemins d'échec.
Faut-il valider une adresse e-mail par une regex ?
Pour un contrôle grossier de vraisemblance, oui. Pour une vraie validation, non — la grammaire de la RFC 5322 est bien plus permissive qu'on ne le croit, et le seul test fiable qu'une adresse fonctionne consiste à lui envoyer un message.
Outils similaires
- Formateur JSONCollez du JSON pour l'afficher avec une indentation cohérente, ou minifiez-le à nouveau. Un JSON invalide est signalé avec la ligne et la colonne exactes, pour que vous trouviez le problème.
- Encodeur URLEncodez du texte en pour cent afin qu'il circule sans risque dans une URL. Encodez une valeur de requête isolée, ou corrigez uniquement les caractères illégaux d'une adresse complète.
- Générateur de hashGénérez simultanément les empreintes MD5, SHA-1, SHA-256, SHA-384 et SHA-512 de n'importe quel texte. Tout est calculé dans votre navigateur.
- Générateur Lorem IpsumGénérez du texte de remplissage par paragraphe, par phrase ou au nombre de mots près. Le résultat est déterministe : les mêmes réglages donnent toujours le même texte.
- Solveur d’anagrammes anglaisSaisissez vos lettres et voyez tous les mots qu'elles permettent, meilleur score en tête. Attention : cet outil s'appuie sur un dictionnaire anglais — il trouve des mots anglais, pas français.