ForHosting KIT · Outils pour développeurs

Extraire les groupes de capture nommés d'un motif regex

Collez un motif comme (?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2}) et obtenez ses groupes nommés dans l'ordre : year, month et day. Le motif est vérifié mais jamais exécuté, prêt pour la documentation ou des modèles de remplacement. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Motif
(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})
Vous obtenez
Groupes nommés
year, month, day
Quantité
3

<name>...) aux seuls groupes numérotés. Cette capacité accepte un unique corps regex ECMAScript, vérifie que le motif compile et renvoie la liste ordonnée des identifiants de groupes de capture nommés qu'il déclare.

À quoi servent les groupes de capture nommés

Un groupe de capture nommé s'écrit avec une parenthèse ouvrante, un point d'interrogation, un nom entre les signes inférieur et supérieur, puis le sous-motif et une parenthèse fermante, comme dans (?<year>\d{4}). Quand une correspondance réussit, ces noms deviennent des étiquettes lisibles : le code lit l'année par son nom au lieu de deviner quel groupe numéroté la contient. C'est pourquoi les longs motifs des bibliothèques partagées, des lecteurs de formulaires et des validateurs nomment souvent leurs groupes : qui hérite du motif voit ce que capture chaque partie.

Lister les noms sans chercher de correspondance

Avant d'écrire des modèles de remplacement, de générer des types pour un validateur ou de proposer des jetons comme $<name> dans un écran d'édition, il vous faut la liste exacte des noms que le motif définit. L'outil vérifie que le motif est valide et lit les noms de gauche à droite, dans l'ordre de déclaration. Les groupes sans nom et les groupes non capturants sont écartés, les assertions lookbehind ne sont pas prises pour des noms et le contenu des crochets ne produit jamais de fausse entrée. Un motif sans groupe nommé renvoie simplement une liste vide.

Ce que sont les groupes de capture nommés et pourquoi les lister aide

Dans les expressions régulières ECMAScript, un groupe de capture nommé s'écrit parenthèse ouvrante, point d'interrogation, inférieur, un identifiant, supérieur, le sous-motif et la parenthèse fermante : par exemple open-paren question-mark less-than year greater-than backslash-d open-brace four close-brace close-paren. Lorsqu'une correspondance réussit, le moteur expose ces noms sur l'objet groups afin que l'appelant lise match.groups.year au lieu de match[1].

Lister les noms sans exécuter de correspondance est utile dès que vous documentez un motif, générez des types TypeScript pour un validateur ou construisez une interface offrant des jetons de remplacement comme dollar-less-than name greater-than. Les groupes capturants sans nom et les groupes non capturants sont ignorés pour la liste des noms. Les assertions lookbehind qui commencent par question-mark less-than equals ou question-mark less-than exclamation ne sont pas traitées comme des groupes nommés.

Les classes de caractères et les parenthèses échappées ne produisent jamais de faux positifs, de sorte qu'une chaîne littérale contenant les caractères d'un ouvreur de groupe nommé entre crochets n'apparaît pas dans le résultat.

Autodocumenter des bibliothèques regex

Générez un tableau d'identifiants de groupes de capture nommés pour chaque motif d'une bibliothèque partagée afin que la documentation reste alignée sur le code source.

Les lookbehind sont-ils traités comme des groupes nommés ?

Non. Les assertions écrites (? <=...) ou (? <!...) sont ignorées. Seuls les groupes de capture (? <name>...) apparaissent dans la liste.

Que se passe-t-il si le motif n'a aucun groupe nommé ?

Vous obtenez une liste vide et un nombre égal à zéro, pas une erreur. Seul un motif que le moteur d'expressions régulières refuse lui-même, par exemple à cause d'une syntaxe cassée, est rejeté.

L'outil teste-t-il le motif sur un texte ?

Non. Il vérifie seulement que le motif est valide et lit les noms de gauche à droite, dans l'ordre de leur déclaration. Aucune correspondance n'est recherchée, donc aucun texte d'exemple n'est nécessaire.

Deux groupes peuvent-ils porter le même nom ?

Non. Les moteurs actuels refusent les noms en double dès la compilation du motif : l'outil vous le signale par un message clair au lieu de renvoyer une liste où le même nom apparaît deux fois.

Les groupes sans nom et le contenu des crochets sont-ils comptés ?

Non. Les groupes numérotés ordinaires et les groupes non capturants restent hors de la liste, et les caractères entre crochets ou les parenthèses échappées ne produisent jamais de faux nom, même s'ils ressemblent à l'ouverture d'un groupe.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/dev/regex-named-group-extract

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/dev/regex-named-group-extract \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pattern":"(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"}'
{
  "pattern": "(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.regex_named_group_extract",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Les groupes de capture nommés transforment des index de correspondance opaques en noms de champ lisibles tels que year, month et email_local ; c'est pourquoi les bibliothèques regex modernes et les validateurs API préfèrent (? Lorsque vous héritez d'un long motif, générez de la documentation ou branchez un analyseur de formulaires, vous avez souvent besoin de la liste des noms que le motif définit réellement avant d'écrire des modèles de remplacement ou de mapper des groupes en JSON. Les motifs sans groupes nommés réussissent avec une liste vide plutôt qu'une erreur ; seule la syntaxe rejetée par le moteur échoue avec invalid_input.

Ce que sont les groupes de capture nommés et pourquoi les lister aide

Ce endpoint n'exécute pas la regex sur un texte d'exemple ; il valide seulement le motif et extrait les noms dans l'ordre de définition de gauche à droite. Les noms en double échouent à la compilation sur les moteurs ECMAScript actuels et apparaissent comme invalid_input avec un message clair.

Contrat d'entrée, forme de la réponse et comportement d'erreur

La valeur doit être une chaîne non vide d'au plus dix mille caractères. Motif vide, pattern manquant ou type non chaîne échouent à la validation avant la compilation. Envoyez en POST un corps JSON avec un champ chaîne obligatoire : pattern, le corps de l'expression régulière sans barres englobantes. Le gestionnaire compile le motif avec le constructeur natif RegExp ; toute erreur de syntaxe, classe non terminée, quantificateur incorrect ou nom de groupe de capture en double devient invalid_input et n'est pas facturée. En cas de succès le corps renvoie pattern, named_groups comme tableau de chaînes dans l'ordre de définition, count comme longueur du tableau et has_named_groups comme drapeau booléen pratique. Exemple : le motif de date avec trois groupes nommés pour year, month et day produit count trois et has_named_groups true. Un simple filtre de mots comme backslash-w plus sans groupes nommés produit un tableau named_groups vide, count zéro et has_named_groups false — c'est toujours un appel réussi, car le motif est valide. Utilisez l'outil gratuit du navigateur pour une inspection rapide ; utilisez l'API lorsque des pipelines CI ou des plugins CMS ont besoin d'une liste stable et lisible par machine des noms de groupe pour chaque motif d'un fichier de configuration.

Où l'extraction des groupes nommés apporte une vraie valeur

Les sites de documentation et les guides de style qui publient des bibliothèques regex peuvent générer automatiquement un tableau de noms de groupe pour chaque motif sans tenir à la main une liste parallèle qui dérive. Les constructeurs de formulaires et les analyseurs de journaux qui acceptent des motifs fournis par l'utilisateur peuvent refuser des modèles qui référencent des jetons dollar-less-than name greater-than absents du motif, réduisant les surprises à l'exécution. Une validation en échec ne consomme pas de solde. Les listes de revue de sécurité demandent souvent quels champs une regex de validation capture ; renvoyer la liste des noms depuis une petite API de parse coûte moins cher que d'installer un débogueur regex complet pour chaque pull request.

Valider les modèles de remplacement

Avant d'enregistrer une règle de replace qui utilise des jetons $<name>, confirmez que chaque nom existe dans la liste named_groups du motif.

Contrôles CI pour formulaires et journaux

Faites échouer un pipeline lorsqu'une regex de configuration prétend capturer email ou order_id mais ne définit aucun groupe nommé correspondant.

Comment extraire les groupes de capture nommés d'une regex ?

Envoyez un corps JSON avec pattern égal au corps regex ECMAScript (sans barres). L'API renvoie named_groups dans l'ordre de définition, plus count et has_named_groups.

Que se passe-t-il si le motif est invalide ?

La tâche échoue avec invalid_input et un message qui inclut l'erreur du moteur. Les motifs invalides ne sont pas facturés.

Un motif sans groupes nommés renvoie-t-il une erreur ?

Non. Les motifs valides avec seulement des groupes numérotés ou non capturants réussissent avec un tableau named_groups vide et count zéro.

Combien coûte l'extraction des groupes nommés d'une regex ?

L'outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.

Consulter la documentation complète du KIT →