Corso di Raku / Espressioni regolari e grammatiche / Espressioni regolari / Ancore / Exercises / Una parola intera
Soluzione: Una parola intera
Ecco una possibile soluzione del compito.
Codice
say 'this is fine' ~~ /<< is >>/;🦋 Trova il programma nel file whole-word.raku.
Output
「is」Commenti
Le ancore
<<e>>richiedono un confine di parola da entrambi i lati diis.Le lettere
isstanno anche dentrothis, ma lì non hanno alcun confine di parola a sinistra, quindi il motore salta quell’occorrenza e riconosce invece la parolaische sta da sola.Entrambi i candidati stampano lo stesso
「is」, quindi come fai a sapere quale ha davvero corrisposto? Cambia l’isnascosto dentrothis— per esempio trasforma la stringa in'thus is fine'. L’output è ancora「is」, immutato, il che prova che quell’occorrenza non è mai stata la corrispondenza. Ora cambia invece la parola isolata (diciamo'this it fine') e la corrispondenza sparisce (Nil). Puoi anche chiedere alla corrispondenza dove comincia:('this is fine' ~~ /<< is >>/).fromrestituisce5, la posizione dell’isisolato, non2.