Grupos con nombre dentro de una expresión regular de JavaScript
Recordemos cómo usábamos los grupos de captura en la propia expresión regular:
let res = str.replace(/([a-z])\1/g, '!');
A veces hay situaciones en las que es más conveniente acceder a un grupo de captura no por su número, sino por su nombre. Para esto necesitamos darle un nombre al grupo de captura:
let res = str.replace(/(?<letter>[a-z])/g, '!');
Ahora podemos acceder a este grupo de captura
a través de la sintaxis \k<name>, de esta manera:
let res = str.replace(/(?<letter>[a-z])\k<letter>/g, '!');
Se da una cadena:
let str = '12:59:59 12:59:12 09:45:09';
Encuentra todas las subcadenas con la hora en las que la hora coincide con los segundos.