Passer au contenu principal
eLearner.app
Module 1 · Leçon 1 sur 41/32 dans le cours~8 min
Leçons du module (1/4)

Pattern letterali

In una regex i caratteri alfanumerici "normali" matchano semplicemente sé stessi: scrivi ciao come pattern e l'engine cercherà la sotto-stringa ciao dentro al testo. Niente di più magico: una scansione da sinistra a destra posizione per posizione.

Code
Pattern: ciao
Sample:  Buongiorno, ciao mondo! Ti dico anche ciao.
                     ^^^^                        ^^^^

Il match porta sempre con sé due informazioni fondamentali:

  • il testo matchato (qui ciao);
  • l'indice (offset 0-based) in cui inizia nel sample (qui 12 e 38).

Le regex sono per default case-sensitive: ciao non matcha CiaoCIAO. Per ignorare il maiuscolo/minuscolo aggiungi la flag i (case-insensitive).

Come ragiona l'engine

L'engine regex analizza il testo un carattere alla volta. Quando cerca il pattern letterale ciao, cerca prima la lettera c. Se la trova, verifica se il carattere successivo è i, poi a, e infine o. Se uno di questi fallisce (mismatch), l'engine torna indietro (backtrack) alla posizione iniziale successiva e ricomincia a cercare la c.

Pattern letterali e flag g

Senza la flag g (global) l'engine si ferma al primo match trovato e arresta la ricerca. Con g attiva, prosegue fino alla fine della stringa e raccoglie tutti i match successivi. Nelle lezioni di questo corso attiveremo quasi sempre g: vogliamo vedere tutti i match presenti nel testo.

Prova tu

Exercice#regex.m1.l1.e1
Tentatives : 0Chargement…

Trova tutte le occorrenze esatte (case-sensitive) della parola `ciao` nel sample. Suggerimento: ricordati la flag `g`.

Chargement de l'éditeur…
Afficher l'indice

Il pattern e' la parola stessa. Le maiuscole non devono matchare: niente flag i.

Solution disponible après 3 tentatives

Esercizio di ripasso

Exercice#regex.m1.l1.e2
Tentatives : 0Chargement…

Trova tutte le occorrenze della parola `errore` nel testo, ignorando maiuscole e minuscole.

Chargement de l'éditeur…
Afficher l'indice

Stessa parola come pattern, ma aggiungi la flag i (case-insensitive) oltre a g.

Solution disponible après 3 tentatives

Sfida aggiuntiva

Exercice#regex.m1.l1.e3
Tentatives : 0Chargement…

Identifica e colleziona tutte le occorrenze esatte della parola `WARNING` (maiuscolo, case-sensitive) nel testo di log di esempio.

Chargement de l'éditeur…
Afficher l'indice

Cerca direttamente la stringa letterale WARNING, facendo attenzione a non attivare il flag i.

Solution disponible après 3 tentatives