freeCodeCamp/curriculum/challenges/spanish/02-javascript-algorithms-an.../regular-expressions/reuse-patterns-using-captur...

4.0 KiB

id title challengeType videoUrl localeTitle
587d7dbb367417b2b2512baa Reuse Patterns Using Capture Groups 1 Reutilizar patrones usando grupos de captura

Description

Algunos patrones que busca ocurrirán varias veces en una cadena. Es un desperdicio repetir manualmente la expresión regular. Hay una mejor manera de especificar cuándo tiene varias subcadenas de repetición en su cadena. Puedes buscar subcadenas usando capture groups . Los paréntesis, ( y ) , se utilizan para encontrar subcadenas repetidas. Pones la expresión regular del patrón que se repetirá entre paréntesis. Para especificar dónde aparecerá esa cadena de repetición, use una barra invertida ( \ ) y luego un número. Este número comienza en 1 y aumenta con cada grupo de captura adicional que use. Un ejemplo sería \1 para que coincida con el primer grupo. El siguiente ejemplo coincide con cualquier palabra que aparezca dos veces separada por un espacio:
vamos a repeatStr = "regex regex";
vamos a repeatRegex = / (\ w +) \ s \ 1 /;
repeatRegex.test (repeatStr); // Devuelve true
repeatStr.match (repeatRegex); // Devuelve ["regex regex", "regex"]
El uso del método .match() en una cadena devolverá una matriz con la cadena que coincide, junto con su grupo de captura.

Instructions

Utilice los capture groups en reRegex para hacer coincidir los números que se repiten solo tres veces en una cadena, cada uno separado por un espacio.

Tests

tests:
  - text: Su expresión regular debe usar la clase de caracteres abreviados para los dígitos.
    testString: 'assert(reRegex.source.match(/\\d/), "Your regex should use the shorthand character class for digits.");'
  - text: Su expresión regular debe reutilizar el grupo de captura dos veces.
    testString: 'assert(reRegex.source.match(/\\\d/g).length === 2, "Your regex should reuse the capture group twice.");'
  - text: Su expresión regular debe tener dos espacios que separan los tres números.
    testString: 'assert(reRegex.source.match(/\\s/g).length === 2, "Your regex should have two spaces separating the three numbers.");'
  - text: Su expresión regular debe coincidir con <code>&quot;42 42 42&quot;</code> .
    testString: 'assert(reRegex.test("42 42 42"), "Your regex should match <code>"42 42 42"</code>.");'
  - text: Su expresión regular debe coincidir con <code>&quot;100 100 100&quot;</code> .
    testString: 'assert(reRegex.test("100 100 100"), "Your regex should match <code>"100 100 100"</code>.");'
  - text: Su expresión regular no debe coincidir con <code>&quot;42 42 42 42&quot;</code> .
    testString: 'assert.equal(("42 42 42 42").match(reRegex.source), null, "Your regex should not match <code>"42 42 42 42"</code>.");'
  - text: Su expresión regular no debe coincidir con <code>&quot;42 42&quot;</code> .
    testString: 'assert.equal(("42 42").match(reRegex.source), null, "Your regex should not match <code>"42 42"</code>.");'
  - text: Su expresión regular no debe coincidir con <code>&quot;101 102 103&quot;</code> .
    testString: 'assert(!reRegex.test("101 102 103"), "Your regex should not match <code>"101 102 103"</code>.");'
  - text: Su expresión regular no debe coincidir con <code>&quot;1 2 3&quot;</code> .
    testString: 'assert(!reRegex.test("1 2 3"), "Your regex should not match <code>"1 2 3"</code>.");'
  - text: Su expresión regular debe coincidir con <code>&quot;10 10 10&quot;</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