Corso di Raku / Espressioni regolari e grammatiche / Espressioni regolari / Ancore
Inizio e fine della stringa
Due ancore segnano le estremità della stringa:
^corrisponde proprio all’inizio della stringa$corrisponde proprio alla fine
Usa ^ per richiedere che la corrispondenza cominci
dall’inizio:
say so 'http://example' ~~ /^ http /; # True
say so 'see http://x' ~~ /^ http /; # FalseLa seconda stringa contiene http, ma non all’inizio,
quindi lo schema ancorato fallisce.
Mettere ^ e $ attorno a uno schema lo
costringe a riconoscere l’intera stringa, senza che
avanzi nulla da nessuna delle due parti:
say so 'hello' ~~ /^ hello $/; # True
say so 'hello world' ~~ /^ hello $/; # FalseÈ un modo di dire molto comune per la validazione — «questa stringa è esattamente un numero?», per esempio:
say so '2025' ~~ /^ \d+ $/; # True
say so '20a5' ~~ /^ \d+ $/; # FalseAncore di riga
Quando una stringa ha più righe, le compagne ^^ e
$$ corrispondono all’inizio e alla fine di ogni
riga invece che dell’intera stringa. La differenza rispetto a
^ e $ salta fuori non appena il testo che vuoi
non è sulla prima riga: le ancore singole vedono solo l’intera stringa e
falliscono, mentre quelle doppie corrispondono su qualunque riga.
say so "cat\ndog" ~~ /^ dog $/; # False
say so "cat\ndog" ~~ /^^ dog $$/; # TrueQui \n inizia una seconda riga. ^^ richiede
che dog stia all’inizio di una riga e $$ alla
fine di una; entrambe le cose valgono sulla seconda riga, quindi le
ancore doppie riescono dove quelle singole non possono.
Pratica
Risolvi 1 quiz sul contenuto di questo argomento.
Navigazione del corso
← Ancore | Quiz — Ancore di stringa →
💪 Oppure vai direttamente agli esercizi di questa
sezione.