Saltar al contenido principal
eLearner.app
Módulo 1 · Lección 1 de 41/32 en el curso~8 min
Lecciones del módulo (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

Ejercicio#regex.m1.l1.e1
Intentos: 0Cargando...

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

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos

Esercizio di ripasso

Ejercicio#regex.m1.l1.e2
Intentos: 0Cargando...

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

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos

Sfida aggiuntiva

Ejercicio#regex.m1.l1.e3
Intentos: 0Cargando...

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

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos