→ Scrivi la regex che trova ogni occorrenza di amo alla fine di una linea.
Soluzione amo$
→ Scrivi che cosa può trovare [123]a .
Soluzione 1a, 2a, 3a
→ Scrivi la regex che trova ogni occorrenza di cero, nero, pero o vero .
Soluzione [cnpv]ero
→ Scrivi che cosa può trovare [1-4a-]X .
Soluzione 1X, 2X, 3X, 4X, aX, -X
→ Scrivi la regex che trova ogni q che non sia preceduta da una c.
Soluzione [^c]q
→ Nel seguente testo sono evidenziate le stringhe che nell'ordine vengono trovate da una regex:
Tanto gentile e tanto onesta pare
Quale regex è stata usata?
la donna mia quand'ella altrui saluta,
ch'ogne lingua deven tremando muta,
e li occhi non l'ardiscon di guardare.
Soluzione a.d
→ Descrivi con parole tue che cosa può trovare [0-9].[a-z]
Soluzione Ogni sequenza di 3 caratteri in cui il primo carattere sia una cifra e il terzo sia una lettera minuscola.
(nota: vedremo più avanti che la regex può essere in modo "case insensitive", e allora [a-z] indicherà una qualunque lettera)
→ Descrivi con parole tue che cosa può trovare [^a-z].g
Soluzione Ogni sequenza di 3 caratteri in cui il primo carattere non sia una lettera minuscola e il terzo sia la lettera g.
(nota: vedremo più avanti che la regex può essere in modo "case insensitive", e allora [^a-z] escluderà una qualunque lettera)
→ Il CAP di Bologna è 40100, quello di Parma è 43100: scrivi la regex che trova l'uno o l'altro (la più breve).
Soluzione 4(0|3)100
→ Hai scritto un trattato di frutticoltura e alla fine vuoi controllare di aver scritto sempre bene il plurale di ciliegia (ciliegie, ma chissà che non sia sfuggito qualche ciliege, che in verità non è del tutto scorretto ma è caduto in disuso). Scrivi la regex che ti serve per effettuare questo controllo.
Soluzione ciliegi?e
→ Nel newsgroup che segui c'è un troll che vuoi eliminare dalla tua vista.
Le sue possibili firme sono: puppet, puppett, pupett, o pupet.
Scrivi la regex che ti occorre per poterlo filtrare.
Soluzione pupp?ett?
→ Nel tuo codice HTML vuoi trovare le occorrenze di a href=" e di a href = ".
Scrivi la regex necessaria (ricorda che anche lo spazio è un carattere!).
Soluzione a +href ?= ?"
→ Cambia leggermente la regex trovata nell'esercizio precedente in modo da includere l'eventualità che attorno all'uguale possa esserci anche più di uno spazio.
Soluzione a +href *= *"
→ In un file CSV (Comma Separated Value), in cui i dati sono separati da virgole, vogliamo trovare di volta in volta tutti i caratteri fino alla prima virgola esclusa. Scrivi la regex necessaria (suggerimento: conviene usare la negazione...).
Soluzione [^,]*
→ Descrivi con parole tue che cosa può trovare P[0-9]{2}
Soluzione Ogni P seguita esattamente da due cifre.
→ Sfruttando le possibilità di .* scrivi la regex che ti fa trovare le intere linee che iniziano con una cifra.
Soluzione ^[0-9].*
→ Descrivi quale tipo di input viene accettato dalla regex ^CAP\.[0-9]+$
Soluzione La stringa CAP seguita da un punto e da almeno una cifra.
→ All'interno di una classe di caratteri [ab] devi includere il segno meno, ma non vorresti metterlo come primo o ultimo carattere dentro le parentesi quadre. C'è un altro modo? Se sì, qual è?
Soluzione [a\-b]
→ Scrivi la regex che trova il nome del file nel seguente testo:
il file fiore.bmp è un file bitmap.
Soluzione fiore\.bmp
→ Migliora l'esempio del testo sui numeri decimali aggiungendo l'opzione che l'utente possa inserire anche numeri dotati di segno.
Soluzione ^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?$
→ Scrivi la regex che accetta come unico input un numero decimale con esattamente due cifre decimali.
Soluzione ^(0|[1-9][0-9]*)(\.[0-9]{2})$
→ In un form di registrazione, si chiede all'utente di immettere un nome a sua scelta, che non può iniziare con un punto ma può contenere numeri, lettere minuscole, punti, segni meno ( - ) e segni di sottolineato ( _ ). Scrivi la regex che può validare questo input.
Soluzione ^[a-z0-9_-]+[.a-z0-9_-]*$