Nouplo

Testeur de regex

Tapez un motif, collez du texte, et voyez chaque correspondance et chaque groupe au fil de la frappe.

Les exemples remplacent temporairement la saisie et les réglages. Vous pouvez rétablir votre travail précédent.

0 caractères
Résultat
Collez ou saisissez du texte ci-dessus pour voir le résultat ici.

Vos fichiers restent sur votre appareil

Cet outil fonctionne entièrement dans votre navigateur. Ce que vous collez est traité sur votre appareil et n’est jamais envoyé à un serveur : vous pouvez l’utiliser sans crainte avec des jetons, des clés et des textes non publiés.

Exemple

Exemple : repérer les numéros de portable français dans une liste de contacts

Six lignes collées telles quelles : « Julie Martin, 06 12 34 56 78 », « Paul Durand, 07.98.76.54.32 », « Accueil : 01 23 45 67 89 », « Marc Petit, +33 6 11 22 33 44 », « Léa Bernard, 0612345678 », « Ancien numéro : 06 12 34 56 ». Motif (\+33\s?|0)([67])(?:[ .]?\d{2}){4}, option g.

  1. (\+33\s?|0) accepte le 0 ou l’indicatif +33 suivi d’une espace facultative ; ([67]) exige un 6 ou un 7, ce qui écarte le fixe en 01.
  2. (?:[ .]?\d{2}){4} prend quatre paires de chiffres, séparées ou non par une espace ou un point : 06 12 34 56 78, 07.98.76.54.32 et 0612345678 passent tous.
  3. L’ancien numéro n’a que trois paires après le 06 : il n’est pas retenu. Sans l’option g, seul le #1 est listé et le compteur affiche 1 résultat.
  4. Chaque correspondance est listée avec @ et sa position dans le texte, puis $1, le préfixe, et $2, le 6 ou le 7 ; (?: garde les séparateurs hors des groupes.
Résultat Position $1 (préfixe) $2
#1 « 06 12 34 56 78 » @1406
#2 « 07.98.76.54.32 » @4207
#3 « +33 6 11 22 33 44 » @94+33 et l’espace6
#4 « 0612345678 » @12506

4 résultats : les trois écritures des 06 et 07 et le +33, mais ni le fixe ni le numéro incomplet. Le motif s’utilise tel quel dans du code JavaScript, entre /…/g, puisque le testeur emploie le moteur du navigateur.

Comment ça marche

  1. Saisissez l’expression régulière dans le champ Motif, sans les barres obliques autour.
  2. Réglez les options : g pour toutes les correspondances, i pour ignorer la casse, m pour des ancres par ligne, s pour que le point prenne aussi les sauts de ligne, u pour l’Unicode complet.
  3. Collez le texte à parcourir : lignes de journal, lignes CSV, HTML, ce sur quoi le motif doit tourner.
  4. Le résultat s’affiche pendant la saisie. La sortie liste chaque correspondance avec sa position et tous les groupes numérotés ou nommés.

Questions fréquentes

Quelle saveur de regex ce testeur utilise-t-il ?
Le moteur JavaScript (ECMAScript) de votre navigateur. Les lookbehind, les groupes nommés (?<nom>...), les propriétés Unicode \p{...} avec l’option u et l’option s fonctionnent dans les navigateurs actuels. Ce qui est propre à PCRE, Python ou Java n’en fait pas partie.
Pourquoi ne vois-je que la première correspondance ?
Sans l’option g, une expression régulière s’arrête à la première correspondance. Ajoutez g dans le champ Options pour lister toutes les occurrences.
Que signifient les options ?
g : toutes les correspondances. i : ignorer la casse. m : ^ et $ valent par ligne plutôt que sur le texte entier. s : le point prend aussi les sauts de ligne. u : motif et texte traités en points de code Unicode, nécessaire pour les émojis et \p{L}. y : collant, chaque correspondance doit commencer exactement où la précédente s’arrête : avec g, elles s’enchaînent depuis le début du texte ; sans g, il y en a une seule, tout au début, ou aucune.
Pourquoi mon motif bloque-t-il ou met-il si longtemps ?
Certains motifs, surtout des quantificateurs imbriqués comme (a+)+ sur un texte qui ne correspond pas, provoquent un retour arrière catastrophique. Rendez les quantificateurs plus précis ou ancrez le motif pour réduire l’espace de recherche.
Pourquoi \w ne prend-il pas les lettres accentuées ?
En JavaScript, \w ne couvre que A-Z, a-z, les chiffres et _ : sur « Un été à Besançon », \w+ trouve « Un », « t », « Besan » et « on ». Utilisez \p{L}+ avec l’option u, qui trouve « Un », « été », « à » et « Besançon ». Sans u, \p{L} n’a pas ce sens et rien n’est trouvé.
Une regex peut-elle vérifier une date jj/mm/aaaa ?
Elle vérifie la forme, pas le calendrier : (\d{2})/(\d{2})/(\d{4}) accepte 31/02/2026 comme 14/07/2026 et range jour, mois et année dans $1, $2 et $3. Pour écarter un 31 février, contrôlez la date dans votre code, après la correspondance.
Mon texte d’exemple est-il envoyé quelque part ?
Non. La recherche tourne entièrement dans le navigateur. Vous pouvez y coller des journaux de production, des données personnelles ou du code source sans risque.

Outils associés