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
txt

Opmerkingen

  1. 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.

  2. De ~ voor elke capture zet hem in stringcontext, zodat hij als kale tekst afgedrukt wordt. Een simpele say $0 zou in plaats daarvan het matchobject met zijn hoekhaken tonen, 「report」. say $0.Str schrijven doet hetzelfde als say ~$0.

Cursusnavigatie

Splits een bestandsnaam   |   Stad en land