J'ai donné un moteur de test de regex à mon assistant IA

· 3 min de lecture

Quand on demande une expression régulière à un assistant IA, il en écrit une qui a l’air juste. Il ne l’a pas exécutée. Il n’a pas vérifié qu’elle accepte vos cas valides et rejette les invalides, ni qu’elle ne peut pas bloquer un serveur sur une entrée bien choisie, ni qu’elle fonctionne dans le moteur que vous utilisez réellement. C’est ce vide que comble Rexact MCP.

Le problème, en trois cas concrets

  1. Elle n’est pas testée. Le motif ^\d{5}$ pour un code postal français semble évident. Mais accepte-t-il 75001 et rejette-t-il 7500 et 75 001 ? Tant que rien ne l’exécute, personne ne le sait.
  2. Elle peut bloquer. (a+)+$ est le cas d’école du « backtracking catastrophique » : sur une chaîne de a terminée par un autre caractère, le temps d’exécution explose. C’est le risque ReDoS, et un assistant qui n’exécute pas le motif ne le voit pas.
  3. Elle n’est pas portable. Une assertion (?<=\d)€ fonctionne dans certains moteurs et pas dans RE2, qui ne gère ni les assertions arrière ni les références arrière.

Ce que Rexact MCP apporte

Rexact MCP est un serveur MCP, c’est-à-dire un petit programme que l’assistant peut appeler comme un outil. Il est gratuit, sous licence MIT, et tourne en local et hors ligne, sans clé ni compte. Il expose cinq outils :

Outil À quoi il sert
verify_regex Teste la regex contre vos cas valides et invalides
check_redos Cherche les motifs à backtracking catastrophique
explain_regex Explique la regex en clair, élément par élément
check_compat Vérifie le comportement sur plusieurs moteurs
generate_regex Génère une regex à partir d’une description

Les moteurs couverts côté Rexact sont JavaScript, PCRE, Python, RE2, Java, .NET et grep.

Installation

Prérequis : Node.js 20 ou plus.

Avec Claude Code :

claude mcp add rexact -- npx -y rexact-mcp

Avec Claude Desktop, Cursor et les clients similaires, ajoutez ce bloc à la configuration mcpServers :

{
  "mcpServers": {
    "rexact": {
      "command": "npx",
      "args": ["-y", "rexact-mcp"]
    }
  }
}

À quoi ressemble l’usage

Voici un exemple de demande, donné à titre d’illustration :

Écris-moi une regex pour un code postal français et vérifie-la avec ces cas : 75001, 13008 valides ; 7500, 75 001, ABCDE invalides.

L’assistant propose un motif, appelle verify_regex avec vos cinq cas, et vous répond sur la base des résultats plutôt que sur l’impression que le motif lui donne. Même logique pour une regex que vous avez déjà : « passe celle-ci dans check_redos avant que je la mette en production ».

Confidentialité

Aucune regex n’est envoyée à Rexact. Seul generate_regex appelle un modèle, avec votre propre clé Anthropic, donc à votre charge. Les quatre autres outils restent entièrement locaux.

Pour aller plus loin