Corso di Raku / Espressioni regolari e grammatiche / Espressioni regolari / Letterali e classi di caratteri
Riconoscere testo letterale
Lo schema più semplice è una sequenza di lettere e cifre. Uno schema simile riconosce esattamente quei caratteri, in quell’ordine, in qualunque punto della stringa:
say 'the cat sat' ~~ /cat/; # 「cat」
say 'Hello' ~~ /ell/; # 「ell」La corrispondenza non deve per forza cominciare all’inizio della stringa: il motore dei regex cerca lo schema in ogni posizione finché non lo trova.
Una corrispondenza riuscita produce un oggetto Match.
Quel 「cat」 del primo esempio è l’aspetto che un oggetto
simile ha quando viene stampato: say mostra un
Match come il testo che ha riconosciuto, avvolto nelle
parentesi angolari 「 」. Se lo schema non è presente, la
corrispondenza fallisce: lo smartmatch produce Nil, un
valore non definito che vale come falso in una prova booleana:
say ('the cat sat' ~~ /dog/); # Nil
say ('the cat sat' ~~ /dog/).Bool; # FalseDentro un regex gli spazi non sono significativi per
impostazione predefinita: sono lì solo per rendere leggibile lo schema.
Quindi / ell / riconosce esattamente ciò che riconoscerebbe
/ell/; gli spazi attorno vengono semplicemente
ignorati:
say 'Hello' ~~ / ell /; # 「ell」Poiché uno spazio nello schema viene ignorato, riconoscere uno spazio vero richiede le virgolette: tutto ciò che metti fra virgolette viene riconosciuto alla lettera. Quelle stesse virgolette servono anche a riconoscere un segno di punteggiatura che altrimenti avrebbe un significato speciale in un regex:
say 'a b' ~~ / 'a b' /; # 「a b」
say 'price: $5' ~~ / '$' /; # 「$」(Per gli spazi bianchi puoi anche usare la classe \s,
che incontrerai fra poco.)
Navigazione del corso
← Letterali e classi di caratteri | Classi di caratteri →
💪 Oppure vai direttamente agli esercizi di questa
sezione.