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
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); }
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!