Générateur de Regex à partir d'un exemple

Écrire une regex à la main pour un numéro de commande, une référence de facture ou une date est fastidieux et facile à rater. Collez une chaîne d’exemple correspondant au format que vous voulez reconnaître : cet outil la lit de gauche à droite, transforme chaque suite de chiffres, de majuscules et de minuscules en une classe de caractères de la bonne longueur, et laisse la ponctuation et les symboles comme caractères littéraux. Vous obtenez un motif ancré à utiliser comme point de départ et à affiner à la main.

Comment ça marche

  1. 1

    Saisissez un exemple

    Tapez ou collez une chaîne d'exemple représentant le format à reconnaître, comme `Order #12345 placed on 2026-04-16`.

  2. 2

    Générez le motif

    L'outil parcourt l'exemple caractère par caractère et remplace chaque suite du même type de caractère par une classe de caractères de sa longueur.

  3. 3

    Lisez le détail

    Sous le motif, une liste de composants explique chaque élément, pour voir quelle partie a reconnu des chiffres, des lettres ou du texte littéral.

  4. 4

    Copiez et affinez

    Utilisez le motif comme point de départ. Ajustez à la main les longueurs fixes ou les classes pour couvrir toute la plage de vos données réelles.

Comment le motif est construit

L’outil lit l’exemple de gauche à droite. Chaque fois qu’il rencontre une suite du même type de caractère, il émet une classe de caractères de la taille de cette suite :

  • une suite de chiffres devient \d{n}, où n est le nombre de chiffres
  • une suite de majuscules A-Z devient [A-Z]{n}
  • une suite de minuscules a-z devient [a-z]{n}
  • une espace unique devient \s, et plusieurs espaces \s{n}
  • tout le reste (ponctuation, symboles, lettres accentuées ou non latines) est conservé comme caractère littéral échappé

Le motif final est encadré par ^ et $ afin de reconnaître toute la chaîne du début à la fin, et non un simple fragment.

Exemple

Pour l’exemple Order #12345 placed on 2026-04-16, l’outil produit :

/^[A-Z]{1}[a-z]{4}\s\#\d{5}\s[a-z]{6}\s[a-z]{2}\s\d{4}\-\d{2}\-\d{2}$/

Order est une majuscule suivie de quatre minuscules ; 12345 devient \d{5} ; et la date 2026-04-16 devient \d{4}\-\d{2}\-\d{2}.

Ce qu’il fait et ne fait pas

  • Les longueurs sont fixes. 12345 devient \d{5}, qui reconnaît exactement cinq chiffres, pas « un ou plusieurs ». Si le nombre varie dans vos données, remplacez {5} par + ou une plage comme {3,8} à la main.
  • Il travaille à partir d’un seul exemple. Il reflète la structure de la seule chaîne fournie, il ne peut donc pas généraliser à partir de plusieurs exemples tout seul. Donnez-lui la chaîne la plus représentative.
  • Seuls A-Z et a-z comptent comme lettres. Les caractères accentués et non latins sont conservés comme littéraux ; remplacez-les par une classe comme \w ou \p{L} si vous voulez qu’ils reconnaissent un ensemble plus large.
  • Une regex ne peut pas tout exprimer. Des choses comme les parenthèses équilibrées sont hors de portée de toute regex, quel que soit le nombre d’exemples. Pour les structures imbriquées, il faut un parseur, pas un motif.

Un bon flux de travail

  1. Générez un motif à partir d’un exemple clair et représentatif.
  2. Assouplissez les longueurs fixes ({5} devient + ou {3,8}) là où la longueur varie.
  3. Collez le motif dans le Testeur de Regex avec un plus grand ensemble de chaînes réelles.
  4. Ajustez jusqu’à ce qu’il reconnaisse tout ce qu’il doit et rien de ce qu’il ne doit pas.

Questions fréquentes

Un seul. Le générateur lit une unique chaîne d’exemple et en reflète la structure. Choisissez la chaîne qui représente le mieux votre format, puis élargissez le motif à la main pour les autres cas.

L’outil compte les caractères exacts de votre exemple : cinq chiffres deviennent donc \d{5}. Si le nombre varie dans les données réelles, remplacez {5} par +, * ou une plage comme {3,8}.

Les ancres font que le motif reconnaît toute la chaîne du début à la fin. Retirez-les si vous voulez chercher le motif à l’intérieur d’un texte plus long.

Il reconnaît A-Z et a-z comme lettres. Tout autre caractère, y compris les lettres accentuées, cyrilliques ou CJK, est conservé comme littéral. Remplacez-le à la main par une classe comme \w ou \p{L} si vous voulez en reconnaître davantage.

Une syntaxe standard (\d, [A-Z], {n}) qui fonctionne sans modification dans PCRE, JavaScript, Python et la plupart des moteurs.

Outils similaires

Outil disponible dans d’autres langues