Corso di Raku / Espressioni regolari e grammatiche / Espressioni regolari / Avverbi
Ambito degli avverbi
L’avverbio :i si può scrivere in due posti, e la
differenza sta in dove fa effetto. Sull’operatore,
m:i/…/ rende insensibile alle maiuscole
l’intero schema. Scritto dentro il regex,
:i è posizionale: si applica solo dal punto in cui
compare in poi. Questo ti permette di allentare la regola sulle
maiuscole per una sola parte di uno schema:
say 'RAKU' ~~ /R :i aku/; # 「RAKU」
say 'raku' ~~ /R :i aku/; # NilQui la R iniziale viene ancora riconosciuta distinguendo
le maiuscole — quindi il minuscolo raku fallisce — mentre
:i rende insensibile alle maiuscole solo l’aku
che segue. Con m:i/Raku/, invece, ogni lettera è
insensibile alle maiuscole, quindi corrispondono sia RAKU
sia raku.
Confinato in un gruppo
L’effetto di un avverbio interno è confinato anche al gruppo che lo
racchiude. In /[:i abc]def/ solo abc ignora le
maiuscole; il def dopo il gruppo viene riconosciuto in modo
stretto:
say 'ABCdef' ~~ /[:i abc]def/; # 「ABCdef」
say 'ABCDEF' ~~ /[:i abc]def/; # NilSpegnere un avverbio
Per rispegnere un avverbio a metà schema, negalo con un
!. Quindi :!i ripristina la distinzione di
maiuscole da quel punto in poi:
say 'ABCdef' ~~ / :i abc :!i def /; # 「ABCdef」
say 'ABCDEF' ~~ / :i abc :!i def /; # Nil:i allenta la regola sulle maiuscole per
abc, poi :!i la rimette a posto così che
def debba corrispondere esattamente. Il raggruppamento e
:!i sono due modi di raggiungere lo stesso obiettivo:
limitare un avverbio alla sola parte di schema che ne ha bisogno. Lo
stesso interruttore acceso/spento funziona anche per gli altri avverbi
interni allo schema.
Navigazione del corso
← Quiz — Ignorecase | Matching globale →
💪 Oppure vai direttamente agli esercizi di questa
sezione.