Maison > interface Web > js tutoriel > Comment accéder aux sous-groupes capturés dans les expressions régulières JavaScript ?

Comment accéder aux sous-groupes capturés dans les expressions régulières JavaScript ?

Linda Hamilton
Libérer: 2024-12-19 12:12:20
original
898 Les gens l'ont consulté

How Do I Access Captured Subgroups in JavaScript Regular Expressions?

Accès aux groupes correspondants dans les expressions régulières JavaScript

Lors de la correspondance d'une chaîne avec une expression régulière, il est crucial de comprendre comment récupérer les sous-groupes capturés . En JavaScript, cela est réalisé en capturant des groupes au sein de l'expression régulière.

Considérez l'exemple suivant :

var myString = "something format_abc"; // Target substring: "abc"

var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString);

console.log(arr); // [" format_abc", "abc"]
console.log(arr[1]); // undefined
console.log(arr[0]); // format_undefined
Copier après la connexion

Raison de la sortie non définie :

Bien que l'expression régulière corresponde correctement à la sous-chaîne « abc », l'accès à arr[1] renvoie un résultat indéfini en raison d'une impression incorrecte dans les instructions console.log. console.log interprète la chaîne %A comme un espace réservé de formatage et tente de la remplacer par le deuxième paramètre, qui n'est pas défini dans ce cas.

Accès aux groupes correspondants :

Pour extraire le groupe correspondant, utilisez arr[1]. Cela renverra correctement "abc".

Itération sur plusieurs correspondances (ES2020) :

JavaScript 2020 a introduit la méthode matchAll, qui génère un itérateur qui peut être utilisé pour parcourir toutes les correspondances d'une chaîne.

const string = "something format_abc";
const regexp = /(?:^|\s)format_(.*?)(?:\s|$)/g;
const matches = string.matchAll(regexp);

for (const match of matches) {
  console.log(match);
  console.log(match.index);
}
Copier après la connexion

Cette approche offre une manière plus propre et plus intuitive de gérer plusieurs matchs.

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