Cursus Raku / Reguliere expressies en grammatica’s / Reguliere expressies / Captures / Exercises / Splits een bestandsnaam
Oplossing: Splits een bestandsnaam
Hier is een mogelijke oplossing voor de taak.
Code
if 'report.txt' ~~ / (\w+) '.' (\w+) / {
say ~$0;
say ~$1;
}🦋 Je kunt de broncode vinden in het bestand split-filename.raku.
Uitvoer
report
txtOpmerkingen
Het eerste haakjespaar captureert de basisnaam in
$0, het tweede captureert de extensie in$1. De punt ertussen staat tussen aanhalingstekens zodat hij een letterlijke.matcht in plaats van een willekeurig teken.De
~voor elke capture zet hem in stringcontext, zodat hij als kale tekst afgedrukt wordt. Een simpelesay $0zou in plaats daarvan het matchobject met zijn hoekhaken tonen,「report」.say $0.Strschrijven doet hetzelfde alssay ~$0.