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

61 lines
1.4 KiB
Markdown
Raw Normal View History

---
title: Reuse Patterns Using Capture Groups
localeTitle: Reutilizar padrões usando grupos de captura
---
## Reutilizar padrões usando o grupo de captura
## Sugestão 1:
Dado código abaixo:
```javascript
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:
```js
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:
```javascript
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:
```javascript
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:
```javascript
let repeatNum = "42 42 42";
let reRegex = /^(\d+)\s\1\s\1$/;
let result = reRegex.test(repeatNum);
```