Raku kurss / Regulārās izteiksmes un gramatikas / Regulārās izteiksmes / Aizvietošana un nomaiņa
Tvērumi aizvietojumā
s/// aizstājuma daļa var atsaukties uz tvērumiem, ko
izdarījis raksturs. Tas ļauj sakritušo tekstu pārkārtot, nevis vienkārši
izmest.
Piemēram, pārvērtiet datumu, kas uzrakstīts kā
gads-mēnesis, par mēnesis/gads, satverot abus
skaitļus un ieliekot tos atpakaļ citā secībā:
my $d = '2025-06';
$d ~~ s/ (\d+) '-' (\d+) /$1\/$0/;
say $d; # 06/2025Raksturs satver gadu $0 un mēnesi $1.
Aizstājumā $1 un $0 ir uzrakstīti apgrieztā
secībā ar slīpsvītru starp tiem. (Slīpsvītra ir atsvītrota kā
\/, lai to nesajauktu ar aizstāšanas beigām.) Ievērojiet,
ka atstarpes ir nenozīmīgas raksturā pusē, bet
burtiskas aizstājuma pusē, tāpēc aizstājums uzrakstīts
bez atstarpēm ap to.
Nosauktie tvērumi darbojas tāpat. Tas padara aizstāšanu skaidri lasāmu pat tad, kad gabalu ir vairāki:
my $name = 'Doe, Jane';
$name ~~ s/ $<last>=(\w+) ', ' $<first>=(\w+) /$<first> $<last>/;
say $name; # Jane DoeKursa navigācija
← Viktorīna — Operators s/// | Transliterācija →
💪 Vai arī dodieties tieši uz šīs sadaļas
vingrinājumiem.