Outil gratuit

    Testeur de RegEx

    Testez, déboguez et visualisez des expressions régulières grâce à la correspondance en temps réel.

    Expression régulière

    //g
    Drapeaux :
    Préréglages :

    Chaîne de test

    Que sont les expressions régulières ?

    Les expressions régulières (Regex) sont des modèles utilisés pour identifier des combinaisons de caractères dans des chaînes de caractères. Elles sont prises en charge par pratiquement tous les langages de programmation et sont indispensables pour le traitement de texte, la validation des entrées, la recherche et le remplacement, ainsi que l'analyse des fichiers journaux.

    Indicateurs Regex JavaScript

    • g — Global : recherche toutes les occurrences, pas seulement la première
    • i — Correspondance sans distinction de majuscules et minuscules
    • m — Multiligne : ^ et $ correspondent aux fins de ligne
    • s — Dotall : « . » correspond aux caractères de fin de ligne

    Cas d'utilisation courants

    • Validation des adresses e-mail, des numéros de téléphone et des URL
    • Extraction de données à partir de fichiers journaux et de textes structurés
    • Recherche et remplacement dans les éditeurs de code et les IDE
    • Création de masques de saisie et de validateurs de formulaire
    • Analyse et transformation de données au format CSV, JSON et XML

    Quand recourir au Regex ?

    Les expressions régulières sont particulièrement efficaces pour les motifs courts et bien définis, lorsqu'il s'agit de rechercher, d'extraire ou de remplacer du texte : analyse de lignes de journal, règles de routage d'URL, validation des champs de formulaire et opérations de recherche et de remplacement dans un éditeur. Elles deviennent en revanche un frein lorsque les données d’entrée constituent en réalité un langage structuré : HTML, JSON, code source ou tout autre format comportant des délimiteurs imbriqués. Dans ces cas-là, utilisez un véritable analyseur syntaxique ; le Regex que vous écrivez aujourd’hui cessera de fonctionner sans crier gare dès le prochain cas limite.

    Regex FAQ

    Des réponses rapides aux questions sur le Regex auxquelles vous êtes réellement confronté lorsque vous écrivez des motifs à la main.

    Quelle variante de Regex ce testeur utilise-t-il ?
    Expressions régulières ECMAScript / JavaScript (le moteur intégré à votre navigateur). Les motifs qui fonctionnent ici fonctionneront également avec `String.prototype.match`, `RegEx.test` et la plupart des linters ou extensions d'éditeur modernes basés sur JavaScript. Les expressions régulières écrites pour PCRE (PHP, Perl), `re` de Python ou `regexp` de Go peuvent se comporter différemment — les regardes en arrière, les groupes atomiques et la syntaxe des groupes nommés constituent des points de divergence courants.
    Comment puis-je rendre mon motif insensible à la casse ?
    Activez l'indicateur `i` (sans distinction de majuscules/minuscules). Cela applique la conversion de majuscules/minuscules à l'ensemble du motif ; ainsi, `/Hello/i` correspond à `hello`, `HELLO` et `HeLLo`. Si vous souhaitez qu’une seule partie du motif soit insensible à la casse, vous devez énumérer explicitement les caractères — les RegEx JavaScript ne prennent pas en charge les modificateurs en ligne tels que `(?i:...)`.
    Pourquoi mon Regex ne fonctionne-t-il pas sur plusieurs lignes ?
    Deux indicateurs influencent le comportement en mode multiligne. L'indicateur `m` (Multiline) modifie le comportement des caractères `^` et `$` afin qu'ils correspondent aux fins de ligne plutôt qu'uniquement au début et à la fin de la chaîne entière — ce qui est utile pour la validation ligne par ligne. Par ailleurs, l’option `s` (dotAll) permet au caractère `.` de correspondre également aux sauts de ligne — sans elle, `.*` s’arrête au premier `\n`. La plupart des cas d’utilisation multiligne nécessitent ces deux options.
    Quelle est la différence entre les quantificateurs « gloutons » et « paresseux » ?
    Par défaut, les quantificateurs tels que `*`, `+` et `{n,m}` sont « gourmands » : ils consomment autant de données d’entrée que possible tout en permettant à la correspondance globale de aboutir. L’ajout d’un `?` les rend « paresseux » : ils ne consomment que le minimum et laissent les parties suivantes du motif récupérer le reste. Le quantificateur glouton `<.+>` appliqué à `` correspond à toute la chaîne ; le quantificateur paresseux `<.+?>` ne correspond qu'à ``. Les quantificateurs paresseux sont généralement ce qu’il vous faut pour extraire des champs entre des délimiteurs.
    Comment puis-je échapper les caractères spéciaux dans mon motif ?
    Pourquoi mon Regex donne-t-il plus (ou moins) de résultats que prévu ?