Vai al contenuto
eLearner.app
Modulo 4 · Lezione 2 di 414/32 nel corso~10 min
Lezioni del modulo (2/4)

Alternative: `|`

La pipe | e' l'OR delle regex: il pattern matcha se una delle alternative matcha. La precedenza e' bassissima: | separa tutto cio' che gli sta a sinistra e a destra fino al gruppo o all'inizio del pattern.

Code
Pattern: cane|gatto|criceto
Sample:  Ho un cane, un gatto e un criceto.
               ^^^^     ^^^^^         ^^^^^^^

Le parentesi guidano la precedenza

Senza parentesi, le alternative spaziano da inizio a fine pattern. Quasi sempre vuoi limitare l'OR a una porzione del pattern: incartalo con un gruppo.

Code
Pattern   Significato (errato vs corretto)
^a|b$     "inizio + a" oppure "b + fine"           (probabilmente sbagliato)
^(a|b)$   "inizio + (a oppure b) + fine"           (probabilmente giusto)

Per ordine alfabetico tipico delle alternative: metti prima quelle piu' specifiche/lunghe. L'engine prova da sinistra a destra e si ferma alla prima che matcha: gat|gatto matcherebbe sempre solo gat.

Precedenza e isolamento delle alternative

L'operatore | ha una precedenza molto bassa. Se scrivi ^abc|def$, stai cercando "una stringa che inizia con abc OR una stringa che finisce con def". Se vuoi cercare "inizio stringa seguito da abc o def, seguito da fine stringa", devi scrivere ^(abc|def)$.

Prova tu

Esercizio#regex.m4.l2.e1
Tentativi: 0Caricamento…

Trova ogni occorrenza dei tre animali `cane`, `gatto`, `criceto` nel testo (qualunque ordine).

Caricamento editor…
Mostra suggerimento

La pipe separa alternative. Usa la flag g per prenderle tutte.

Soluzione disponibile dopo 3 tentativi

Esercizio di ripasso

Esercizio#regex.m4.l2.e2
Tentativi: 0Caricamento…

Trova le parole `gennaio` o `febbraio` SOLO se intere (usa `\\b` per evitare match dentro parole piu' lunghe). Usa parentesi per limitare l'alternativa.

Caricamento editor…
Mostra suggerimento

\\b(gennaio|febbraio)\\b ancora la scelta alle parole intere.

Soluzione disponibile dopo 3 tentativi

Sfida aggiuntiva

Esercizio#regex.m4.l2.e3
Tentativi: 0Caricamento…

Trova i nomi dei file che terminano con estensione `.jpg`, `.png` o `.gif`.

Caricamento editor…
Mostra suggerimento

Usa la pipe all'interno di un gruppo per alternare le estensioni.

Soluzione disponibile dopo 3 tentativi