Corso di Raku / Espressioni regolari e grammatiche / Espressioni regolari / Sostituzione e rimpiazzo
L’operatore di sostituzione
L’operatore di sostituzione è s///. Sembra una
corrispondenza con un secondo scomparto: lo schema va fra le prime due
barre e il testo di rimpiazzo fra le ultime due:
my $s = 'hello world';
$s ~~ s/world/Raku/;
say $s; # hello RakuLa sostituzione cambia la variabile sul posto,
quindi $s stesso viene aggiornato. Il testo nella parte di
rimpiazzo è letterale: non lo metti fra virgolette.
Come il riconoscimento, la sostituzione tocca per impostazione
predefinita solo la prima occorrenza. Aggiungi
l’avverbio :g per rimpiazzare ogni occorrenza:
my $s = 'a-b-c';
$s ~~ s:g/'-'/_/;
say $s; # a_b_cSe vuoi conservare l’originale e produrre una copia
modificata invece di cambiare sul posto, usa l’operatore
maiuscolo S///: esegue la sostituzione e
restituisce la stringa cambiata, lasciando intatto l’originale. Poiché
non aggiorna una variabile sul posto, puntalo su una con
given invece che con ~~:
my $orig = 'color';
say S:g/o/0/ given $orig; # c0l0r
say $orig; # color(Scrivere $orig ~~ S/// ti avvisa di usare invece
given: con S/// non c’è nulla da modificare
sul posto.)
Lo stesso comportamento non distruttivo è disponibile anche come
metodo, .subst, che restituisce una nuova stringa:
my $orig = 'color';
say $orig.subst('o', '0', :g); # c0l0r
say $orig; # colorPratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Sostituzione e rimpiazzo | Quiz — L’operatore s/// →
💪 Oppure vai direttamente agli esercizi di questa
sezione.