Catégories

Linting Regex

Détecte les motifs de regex sujets aux erreurs et risqués, vérifie le backtracking catastrophique, les motifs sans ancre et fournit des suggestions de réécriture

Linting Regex

Aperçu

L'outil de linting Regex analyse les expressions régulières pour les anti-patrimoines communs, les problèmes de performance et les problèmes de correction. Il vous aide à écrire de meilleures expressions régulières plus sûres et plus efficaces.

Problèmes Détectés

Problèmes Critiques (Performance)

  • Backtracking Catastrophique : Quantificateurs imbriqués comme (a+)+ pouvant causer une complexité temporelle exponentielle
  • Comportement Quadratique : Motifs comme (.*)* présentant une performance O(n²)
  • Répétitions Non Bornées : Quantificateurs gourmands sans limites de longueur maximale

Problèmes d'Erreur (Correction)

  • Points Non Échappés : Utiliser . au lieu de . (point littéral)
  • Ancres Manquantes : Motifs pouvant correspondre n'importe où dans le texte
  • Classes de Caractères Invalides : Plages comme [a-Z] incluant des caractères inattendus
  • Échappements Octaux : ambigus dans les regex modernes

Problèmes d'Avertissement (Lisibilité)

  • Non-Gourmand Visible : Motifs .*? pouvant utiliser des classes de caractères négatives
  • Échappements Redondants : Barres obliques inverses inutiles comme \-
  • Double Négation : Motifs confus [^[^]]
  • Alternation Ambiguë : a|ab où l'ordre compte

Points clés

Catégorie
Development
Types d’entrée
text, select, checkbox
Type de sortie
json
Couverture des échantillons
4
API disponible
Yes

Vue d’ensemble

L'outil de linting Regex analyse les expressions régulières pour détecter les problèmes de performance, de correction et de lisibilité, vous aidant à écrire des regex plus sûres et efficaces.

Quand l’utiliser

  • Lors de la rédaction d'une nouvelle expression régulière pour valider des données.
  • Pour auditer et sécuriser des motifs regex existants dans votre code.
  • Avant d'intégrer une regex dans un environnement de production pour éviter les lenteurs.

Comment ça marche

  • Saisissez votre motif regex dans le champ dédié.
  • Ajoutez les drapeaux regex nécessaires, comme 'g' pour global ou 'i' pour insensible à la casse.
  • Choisissez le dialecte cible parmi JavaScript, Python, PCRE, Go ou Java.
  • Sélectionnez le niveau de vérification : basic, standard ou strict, et activez les suggestions de réécriture.

Cas d’usage

Validation de formulaires web pour s'assurer que les entrées utilisateur respectent un format spécifique.
Extraction de données à partir de fichiers texte ou de logs en utilisant des regex sécurisées.
Optimisation des expressions régulières dans des scripts de traitement de texte pour améliorer les performances.

Exemples

1. Détection de backtracking dans une regex d'email

Développeur web
Contexte
Un développeur crée une regex pour valider des adresses email dans un formulaire d'inscription.
Problème
La regex `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` peut causer des lenteurs avec des entrées longues.
Comment l’utiliser
Entrez cette regex dans l'outil, sélectionnez le dialecte JavaScript et le niveau de vérification strict.
Résultat
L'outil signale un potentiel de backtracking et suggère d'utiliser des quantificateurs non gourmands ou des classes de caractères plus précises.

2. Vérification d'ancres manquantes pour l'extraction de texte

Contexte
Un analyste utilise une regex pour extraire des numéros de téléphone d'un document.
Problème
La regex `\d{10}` correspond à n'importe quelle séquence de 10 chiffres, pas seulement les numéros de téléphone.
Comment l’utiliser
Utilisez l'outil avec le dialecte Python et activez les suggestions de réécriture.
Résultat
L'outil détecte l'absence d'ancres et propose d'ajouter `^` et `$` ou d'utiliser des délimiteurs pour cibler précisément les numéros.

Tester avec des échantillons

regex

Hubs associés

FAQ

Qu'est-ce que le backtracking catastrophique ?

C'est un problème de performance où des quantificateurs imbriqués dans une regex peuvent causer une complexité exponentielle, rendant l'exécution très lente.

Comment puis-je utiliser les suggestions de réécriture ?

Activez l'option 'Inclure les Suggestions de Réécriture' pour obtenir des alternatives optimisées à votre motif.

Quels dialectes regex sont supportés ?

L'outil supporte JavaScript, Python, PCRE, Go (RE2) et Java.

Quelle est la différence entre les niveaux de vérification ?

Basic détecte uniquement les problèmes critiques de performance, standard inclut les erreurs et avertissements, et strict ajoute les suggestions de style.

Puis-je utiliser cet outil pour des regex complexes ?

Oui, l'outil est conçu pour analyser des motifs de toute complexité et signaler les problèmes potentiels.

Documentation de l'API

Point de terminaison de la requête

POST /fr/api/tools/regex-linter

Paramètres de la requête

Nom du paramètre Type Requis Description
regexPattern text Oui -
regexFlags text Non -
targetDialect select Non -
checkLevel select Non -
includeSuggestions checkbox Non -

Format de réponse

{
  "key": {...},
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
Données JSON: Données JSON

Documentation de MCP

Ajoutez cet outil à votre configuration de serveur MCP:

{
  "mcpServers": {
    "elysiatools-regex-linter": {
      "name": "regex-linter",
      "description": "Détecte les motifs de regex sujets aux erreurs et risqués, vérifie le backtracking catastrophique, les motifs sans ancre et fournit des suggestions de réécriture",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=regex-linter",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

Vous pouvez chaîner plusieurs outils, par ex.: `https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`, max 20 outils.

Si vous rencontrez des problèmes, veuillez nous contacter à [email protected]