Entendi que é possível imprimir todos os matches e exibir também os grupos encontrados usando o trecho de código abaixo:
var target = '11a22b33c';
var pattern = /(\d\d)(\w)/g;
// Printing matches
while (result = pattern.exec(target)) {
console.log(result);
}
O resultado impresso é:
["11a", "11", "a", index: 0, input: "11a22b33c", groups: undefined]
["22b", "22", "b", index: 3, input: "11a22b33c", groups: undefined]
["33c", "33", "c", index: 6, input: "11a22b33c", groups: undefined]
Existe uma forma elegante de extrair os grupos retornados? Eu consegui fazer isso usando algo como result.join('|||')
e acessando todas as posições do array retornado, exceto a primeira, que é o match. Mas existe alguma propriedade que retorne apenas os grupos? A propriedade groups
aparece vazia, o que parece incorreto já que especificamos 2 grupos na expressão regular da variável pattern
.