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

1.5 KiB

title localeTitle
Reuse Patterns Using Capture Groups Reutilizar patrones usando grupos de captura

Reutilizar patrones usando el grupo de captura

Sugerencia 1:

Código dado abajo:

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

result solo coincidirá con la test test porque \1 en este ejemplo representa el mismo texto que el último grupo de captura (test) comparó más recientemente.

Si tuviéramos que traducir literalmente la expresión regular, se vería algo así:

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

Tanto rea como literalRe coincidirían con la misma cosa.

Sugerencia 2:

Dado el siguiente código:

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

coincidirá con la test test test entera porque: \1 repite (prueba) \2 repeticiones (\ s)

Sugerencia 3:

El siguiente código:

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

debido a que usamos \g , nuestro Regex no regresa después de la primera coincidencia completa ( test test test ) y todas las repeticiones.

Alerta de Spoiler - ¡Solución por delante!

Solución:

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