freeCodeCamp/guide/portuguese/certifications/javascript-algorithms-and-d.../regular-expressions/reuse-patterns-using-captur.../index.md

1.4 KiB

title localeTitle
Reuse Patterns Using Capture Groups Reutilizar padrões usando grupos de captura

Reutilizar padrões usando o grupo de captura

Sugestão 1:

Dado código abaixo:

let testString = "test test test "; 
 let reRegex =/(test)\s\1/; 
 let result = reRegex.test(testString); 

result no test test porque \1 neste exemplo representa o mesmo texto que o mais recente correspondido pelo primeiro grupo de captura (test) .

Se fôssemos traduzir literalmente o regex, seria algo como isto:

let re = /(test)\s\1; 
 let literalRe = /test\stest; 

Ambos rea e literalRe combinariam com a mesma coisa.

Dica 2:

Dado o código abaixo:

let testString = "test test test "; 
 let reRegex =/(test)(\s)\1\2\1/; 
 let result = reRegex.test(testString); 

irá coincidir com o test test test inteiro porque: \1 repetições (teste) \2 repetições (\ s)

Dica 3:

O código abaixo:

let testString = "test test test test test test"; 
 let reRegex =/(test)(\s)\1\2\1/g; 
 let result = reRegex.test(testString); 

porque usamos \g , nosso Regex não retorna após a primeira correspondência completa ( test test test ) e corresponde a todas as repetições.

Alerta de Spoiler - Solução à frente!

Solução:

let repeatNum = "42 42 42"; 
 let reRegex =  /^(\d+)\s\1\s\1$/; 
 let result = reRegex.test(repeatNum);