3.9 KiB
3.9 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d7dbb367417b2b2512baa | Reuse Patterns Using Capture Groups | 1 | Reutilizar padrões usando grupos de captura |
Description
capture groups
. Parênteses, (
e )
, são usados para encontrar substrings de repetição. Você coloca o regex do padrão que será repetido entre os parênteses. Para especificar onde essa sequência de repetição aparecerá, use uma barra invertida ( \
) e, em seguida, um número. Esse número começa em 1 e aumenta com cada grupo de captura adicional usado. Um exemplo seria \1
para corresponder ao primeiro grupo. O exemplo abaixo corresponde a qualquer palavra que ocorre duas vezes separada por um espaço: let repeatStr = "regex regex";Usar o método
deixe o repeatRegex = / (\ w +) \ s \ 1 /;
repeatRegex.test (repeatStr); // Retorna true
repeatStr.match (repeatRegex); // Retorna ["regex regex", "regex"]
.match()
em uma string retornará uma matriz com a string correspondente, junto com seu grupo de captura. Instructions
capture groups
em reRegex
para corresponder números que são repetidos apenas três vezes em uma cadeia, cada um separado por um espaço. Tests
tests:
- text: Seu regex deve usar a classe de caractere abreviada para dígitos.
testString: 'assert(reRegex.source.match(/\\d/), "Your regex should use the shorthand character class for digits.");'
- text: Seu regex deve reutilizar o grupo de captura duas vezes.
testString: 'assert(reRegex.source.match(/\\\d/g).length === 2, "Your regex should reuse the capture group twice.");'
- text: Seu regex deve ter dois espaços separando os três números.
testString: 'assert(reRegex.source.match(/\\s/g).length === 2, "Your regex should have two spaces separating the three numbers.");'
- text: Seu regex deve corresponder <code>"42 42 42"</code> .
testString: 'assert(reRegex.test("42 42 42"), "Your regex should match <code>"42 42 42"</code>.");'
- text: Seu regex deve corresponder a <code>"100 100 100"</code> .
testString: 'assert(reRegex.test("100 100 100"), "Your regex should match <code>"100 100 100"</code>.");'
- text: Seu regex não deve corresponder a <code>"42 42 42 42"</code> .
testString: 'assert.equal(("42 42 42 42").match(reRegex.source), null, "Your regex should not match <code>"42 42 42 42"</code>.");'
- text: Seu regex não deve corresponder a <code>"42 42"</code> .
testString: 'assert.equal(("42 42").match(reRegex.source), null, "Your regex should not match <code>"42 42"</code>.");'
- text: Seu regex não deve coincidir com <code>"101 102 103"</code> .
testString: 'assert(!reRegex.test("101 102 103"), "Your regex should not match <code>"101 102 103"</code>.");'
- text: Seu regex não deve corresponder a <code>"1 2 3"</code> .
testString: 'assert(!reRegex.test("1 2 3"), "Your regex should not match <code>"1 2 3"</code>.");'
- text: Seu regex deve coincidir com <code>"10 10 10"</code> .
testString: 'assert(reRegex.test("10 10 10"), "Your regex should match <code>"10 10 10"</code>.");'
Challenge Seed
let repeatNum = "42 42 42";
let reRegex = /change/; // Change this line
let result = reRegex.test(repeatNum);
Solution
// solution required