Método exec
O método exec realiza uma busca em
uma string de acordo com uma expressão regular fornecida. O resultado retornado é a substring
encontrada e seus grupos de captura (capturing groups). Além disso, cada
chamada subsequente deste método
iniciará a busca a partir do ponto
onde a substring encontrada anteriormente
terminou. Se nenhuma correspondência
for encontrada - retorna null.
Sintaxe
expressão_regular.exec(string);
Exemplo
Vamos verificar o funcionamento do método:
let str = '12 34 56';
let reg = /\d+/g;
let res1 = reg.exec(str);
console.log(res1);
let res2 = reg.exec(str);
console.log(res2);
let res3 = reg.exec(str);
console.log(res3);
let res4 = reg.exec(str);
console.log(res4);
Resultado da execução do código:
[12]
[34]
[56]
null
Exemplo
Vamos utilizar o método em um loop:
let str = '12 34 56';
let reg = /\d+/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultado da execução do código:
[12]
[34]
[56]
Exemplo
As correspondências encontradas podem ser decompostas em grupos de captura (capturing groups):
let str = '12 34 56';
let reg = /(\d)(\d)/g;
let res;
while (res = reg.exec(str)) {
console.log(res);
}
Resultado da execução do código:
[12, 1, 2]
[34, 3, 4]
[56, 5, 6]
Exemplo
Usando a propriedade lastIndex
é possível definir a posição a partir da qual
se deve iniciar a busca:
let str = '12 34 56';
let reg = /\d+/g;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Resultado da execução do código:
[34]
[56]
Exemplo
Usando o modificador y
é possível fixar a posição
de início da busca:
let str = '12 34 56';
let reg = /\d+/y;
reg.lastIndex = 2;
let res1 = reg.exec(str)
console.log(res1);
let res2 = reg.exec(str)
console.log(res2);
Resultado da execução do código:
null
[12]