mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-01-25 18:02:11 -05:00
1.4 KiB
1.4 KiB
title, localeTitle
| 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);