Maison > interface Web > js tutoriel > Comment puis-je accéder aux groupes correspondants dans les expressions régulières JavaScript ?

Comment puis-je accéder aux groupes correspondants dans les expressions régulières JavaScript ?

Mary-Kate Olsen
Libérer: 2024-12-29 16:42:18
original
898 Les gens l'ont consulté

How Can I Access Matched Groups in JavaScript Regular Expressions?

Accéder aux groupements correspondants dans les expressions régulières JavaScript

Lors de l'utilisation d'expressions régulières pour faire correspondre des modèles dans des chaînes, il est souvent souhaitable d'accéder à des parties spécifiques du texte correspondant. JavaScript propose plusieurs façons d'y parvenir.

Dans votre exemple, vous avez correctement utilisé une expression régulière avec des parenthèses pour capturer une partie de la chaîne. Cependant, le problème que vous avez rencontré ne concernait pas l'expression régulière elle-même, mais la façon dont vous accédiez aux groupes correspondants.

Accès aux groupes avec .exec()

Le fichier . La méthode exec() renvoie un tableau contenant la totalité de la chaîne correspondante comme premier élément, suivi de tous les groupes capturés. Pour accéder au premier groupe capturé (la partie "abc" dans votre exemple), vous utiliserez arr[1] :

let myString = "something format_abc";
let arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);

console.log(arr[1]); // Prints: abc
Copier après la connexion

Utilisation de groupes de capture nommés

Vous pouvez également nommer vos groupes de capture à l'aide d'une syntaxe d'expressions régulières telle que (?). Cela vous permet d'accéder au texte capturé par son nom :

let myString = "something format_abc";
let arr = /(?:^|\s)format_(?<text>.*?)(?:\s|$)/.exec(myString);

console.log(arr.groups.text); // Prints: abc
Copier après la connexion

Syntaxe alternative avec des groupes de capture nommés :

Dans ECMAScript 2018, vous pouvez utiliser une syntaxe légèrement différente syntaxe pour les groupes de capture nommés, en entourant le nom du groupe en bouclé accolades :

let myString = "something format_abc";
let arr = /(?:^|\s)format_({text}.*?)(?:\s|$)/.exec(myString);

console.log(arr.groups.text); // Prints: abc
Copier après la connexion

Faire correspondre plusieurs occurrences avec .matchAll()

La méthode .matchAll() a été introduite dans ECMAScript 2020 et fournit une API basée sur un itérateur pour faire correspondre plusieurs occurrences d'un modèle dans une chaîne. Il renvoie un itérateur qui génère des résultats de correspondance sous forme de tableau pour chaque correspondance, et vous pouvez accéder aux groupes capturés dans chaque résultat.

Pour utiliser .matchAll() dans votre exemple :

let myString = "something format_abc and something format_xyz";
let matches = myString.matchAll(/(?:^|\s)format_(.*?)(?:\s|$)/g);

for (let match of matches) {
  console.log(match[1]); // Prints: abc, then xyz
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal