Curso de Raku / Expresiones regulares y gramáticas / Expresiones regulares / Sustitución y reemplazo
Capturas en el reemplazo
La parte de reemplazo de s/// puede referirse a las
capturas hechas por el patrón. Esto te permite reordenar el texto
coincidente en lugar de limitarte a tirarlo.
Por ejemplo, convierte una fecha escrita como año-mes en
mes/año capturando ambos números y volviéndolos a colocar
en el orden inverso:
my $d = '2025-06';
$d ~~ s/ (\d+) '-' (\d+) /$1\/$0/;
say $d; # 06/2025El patrón captura el año en $0 y el mes en
$1. En el reemplazo, $1 y $0 se
escriben en orden invertido, con una barra entre ellos. (La barra se
protege como \/ para que no se confunda con el final de la
sustitución.) Fíjate en que los espacios son insignificantes del lado
del patrón pero literales del lado del
reemplazo, así que el reemplazo se escribe sin espacios
alrededor.
Las capturas con nombre funcionan igual. Esto hace que una sustitución se lea con claridad incluso cuando hay varias piezas:
my $name = 'Doe, Jane';
$name ~~ s/ $<last>=(\w+) ', ' $<first>=(\w+) /$<first> $<last>/;
say $name; # Jane DoeNavegación del curso
← Quiz — El operador s/// | Transliteración →
💪 O ve directamente a los ejercicios de esta
sección.