1.5 KiB
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);