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.
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.
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
Trova ogni occorrenza dei tre animali `cane`, `gatto`, `criceto` nel testo (qualunque ordine).
Mostra suggerimento
La pipe separa alternative. Usa la flag g per prenderle tutte.
Soluzione disponibile dopo 3 tentativi
Esercizio di ripasso
Trova le parole `gennaio` o `febbraio` SOLO se intere (usa `\\b` per evitare match dentro parole piu' lunghe). Usa parentesi per limitare l'alternativa.
Mostra suggerimento
\\b(gennaio|febbraio)\\b ancora la scelta alle parole intere.
Soluzione disponibile dopo 3 tentativi
Sfida aggiuntiva
Trova i nomi dei file che terminano con estensione `.jpg`, `.png` o `.gif`.
Mostra suggerimento
Usa la pipe all'interno di un gruppo per alternare le estensioni.
Soluzione disponibile dopo 3 tentativi