Informatica di base

Cifre e spazi nelle espressioni regolari

Autore

Manuel Ricci

Questa è una lezione pocket, molto breve, ma perché il grosso è stato già affrontato nella lezione precedente su \b e \w, quindi qui andiamo via abbastanza lisci.

Il tema della lezione sono le cifre e gli spazi. Abbiamo già avuto modo di incontrare \s e \d nelle lezioni precedenti, ma non abbiamo avuto ancora l’occasione di fare conoscenza con \D e \S.

Come già accennato nelle lezioni precedenti le entità con la lettera maiuscola fanno il contrario di ciò che fa l’entità con la lettera minuscola.

Quindi, considerando che \s seleziona gli spazi, la sua controparte \S seleziona tutto ciò che non è spazio.

Mentre per quanto riguarda \d, entità che ci permette di selezionare i numeri, la sua controparte \D seleziona tutto ciò che non è un numero come lettere, simboli, spazi, ecc.

Questo è tutto ciò che c’è da sapere su questo tipo di entità, ma non sarebbe una lezione di Imparare Coding con Manuel senza un piccolo esercizio.

\d nelle espressioni regolari in pratica

Supponiamo di avere il seguente gruppo di date:

  • 24-10-2022
  • 4-8-2023
  • 25-12-92
  • 22-05-1993

Il vostro compito è quello di scrivere un’espressione regolare che individui queste date. Tutto ciò che vi serve è quasi stato tutto affrontato in questa lezione e in quelle precedenti. C’è un solo dettaglio che manca, ma è qui la sfida.

L’espressione regolare che si potrebbe usare è la seguente:

1\d{1,2}-\d{1,2}-\d{2,4}

Quello che ho scritto lo possiamo interpretare così:

  • \d sappiamo essere l’entità che individua i numeri
  • {1,2} indica il numero di ripetizioni possibili, in questo caso specifico da 1 a 2
  • - è solo un trattino
  • {2,4} come prima, ma stavolta è da 2 a 4 (3 compreso)

Proviamo a complicare ulteriormente la faccenda. Le date ora sono queste:

  • 24/10/2022
  • 4-8-2023
  • 25/12/92
  • 22-05-1993

Questa è cattiva… Oltre al trattino ora dobbiamo pensare che potrebbe esserci lo slash. Anche questo l’abbiamo visto in precedenza, ma anche qui c’è una peculiarità in più.

L’espressione regolare che si potrebbe scrivere è la seguente:

1\d{1,2}[\/|-]\d{1,2}[\/|-]\d{2,4}

Molto simile a quella precedente, ma vediamo ciò che non sappiamo:

  • [...] è il set di caratteri che vedremo nella prossima lezione
  • \/ nella data dobbiamo individuare lo slash, ma siccome lo slash è un carattere speciale, dobbiamo fare l’escape, annullare la sua specialità con il backslash che sappiamo avere la duplice funzione di rendere speciali i caratteri normali e normali i caratteri speciali
  • | è il carattere speciale che indica un’alternativa
  • - l’alternativa (rimane sempre e solo un trattino)

Conclusioni

Questa lezione pocket è stata decisamente più pratica, ma ha aggiunto un tassello fondamentale per poter meglio comprendere le espressioni regolari. Nella prossima lezione vediamo i set di caratteri.

Caricamento...

Diventiamo amici di penna? ✒️

Iscriviti alla newsletter per ricevere una mail ogni paio di settimane con le ultime novità, gli ultimi approfondimenti e gli ultimi corsi gratuiti puubblicati. Ogni tanto potrei scrivere qualcosa di commerciale, ma solo se mi autorizzi, altrimenti non ti disturberò oltre.

Se non ti piace la newsletter ti ricordo la community su Discord, dove puoi chiedere aiuto, fare domande e condividere le tue esperienze (ma soprattutto scambiare due meme con me). Ti aspetto!

Ho in previsione di mandarti una newsletter ogni due settimane e una commerciale quando capita.