Cursus Raku / Reguliere expressies en grammatica’s / Reguliere expressies / Ankers / Exercises / Een heel woord
Oplossing: Een heel woord
Hier is een mogelijke oplossing voor de taak.
Code
say 'this is fine' ~~ /<< is >>/;🦋 Je kunt de broncode vinden in het bestand whole-word.raku.
Uitvoer
「is」Opmerkingen
De ankers
<<en>>eisen aan beide kanten vaniseen woordgrens.De letters
iszitten ook binnenthis, maar daar hebben ze links geen woordgrens, dus slaat de engine dat voorkomen over en matcht ze in plaats daarvan het losstaande woordis.Beide kandidaten drukken dezelfde
「is」af, dus hoe weet je welke werkelijk matchte? Verander deisdie inthisverstopt zit — maak van de string bijvoorbeeld'thus is fine'. De uitvoer is nog steeds「is」, onveranderd, wat bewijst dat dat voorkomen nooit de match was. Verander nu in plaats daarvan het losstaande woord (zeg'this it fine') en de match verdwijnt (Nil). Je kunt de match ook vragen waar hij begint:('this is fine' ~~ /<< is >>/).fromgeeft5terug, de positie van het losstaandeis, niet2.