Saltar al contenido principal
eLearner.app
Módulo 1 · Lección 3 de 43/32 en el curso~8 min
Lecciones del módulo (3/4)

Il jolly: il punto `.`

Il punto . in regex e' il jolly: matcha qualunque carattere singolo\u2026 con una sola eccezione importante: NON matcha il newline (\n).

Code
Pattern: c.t
Sample:  cat cot cut c@t c\nt
         ^^^ ^^^ ^^^ ^^^

Tre lettere: una c, un carattere qualsiasi, una t. Niente newline in mezzo, quindi c\nt non viene matchato (di default).

Il punto e' utilissimo ma anche pericoloso: usato senza disciplina cattura piu' di quanto vorresti. Combinato con i quantificatori del modulo 2 (.*, .+?) e' la sorgente del 90% dei pattern che "non funzionano come pensavo".

Flag s: "dotAll"

Con la flag s (detta anche dotAll o single-line) il punto matcha ogni carattere, newline compreso. Utile per estrarre blocchi che attraversano piu' righe.

Code
Pattern: <p>.*</p>
Flag:    gs
Sample:  <p>prima\nseconda</p>
         ^^^^^^^^^^^^^^^^^^^^^

Limiti e comportamento del punto jolly

Il punto . è un jolly potente, ma per impostazione predefinita non matcha il carattere di a capo (\\n). Se vuoi che il punto matchi assolutamente tutto, incluso l'a capo, devi attivare la flag s (dotAll). Attenzione all'uso del punto con quantificatori (.*), poiché tende a consumare troppo testo (comportamento avido).

Prova tu

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

Trova ogni triplette di caratteri delimitate da parentesi tonde, es. `(abc)`, `(xyz)`. Usa il jolly per i 3 caratteri interni.

Cargando editor...
Mostrar pista

Tre punti per tre caratteri qualsiasi. Le parentesi sono meta-caratteri: vanno escapate con \\.

Solución disponible después de 3 intentos

Esercizio di ripasso

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

Estrai il blocco fra `[INIZIO]` e `[FINE]`, che puo' attraversare piu' righe. Ti servira' la flag `s` per far matchare il punto anche ai newline, e la versione 'lazy' del quantificatore (`.*?`, modulo 2).

Cargando editor...
Mostrar pista

Senza flag s, il punto si ferma a fine riga: aggiungila. La forma .*? (lazy) ferma il match al primo [FINE].

Solución disponible después de 3 intentos

Sfida aggiuntiva

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

Trova tutte le sequenze di 3 caratteri che iniziano con `c` e finiscono con `t` (es. `cat`, `cot`, `c-t`).

Cargando editor...
Mostrar pista

Il pattern usa il punto '.' per rappresentare il carattere centrale jolly.

Solución disponible después de 3 intentos