Pattern regex e classi di caratteri
\d, \w, \s, ., ^, $, +, *, ?, {n,m}, classi di caratteri [a-z] e negazione [^...].
Pattern regex e classi di caratteri è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Perché le regex sono importanti per l'IA testuale
L'IA testuale parte da testo grezzo e disordinato. Le espressioni regolari (regex) sono un linguaggio compatto per trovare ed estrarre pattern — numeri di telefono, date, hashtag e URL — così può ripulire e strutturare il testo prima di fornirlo a un modello.
Questo corso insegna i pattern, il modulo re, i gruppi e una pipeline reale di pulizia del testo.
Caratteri letterali
Il pattern più semplice è il testo letterale: corrisponde esattamente a quei caratteri. Per impostazione predefinita, le regex distinguono tra maiuscole e minuscole.
cat corrisponde a "cat" all'interno di "the cat sat", ma non a "Cat".
import re
print(re.findall("cat", "the cat sat on a cat mat"))
# ["cat", "cat"]Il metacarattere punto
Il punto . corrisponde a qualsiasi singolo carattere, tranne un a capo. È un carattere jolly.
c.t corrisponde a "cat", "cot", "c9t": qualsiasi sequenza composta da c, un carattere e poi t.
import re
print(re.findall("c.t", "cat cot cut c@t"))
# ["cat", "cot", "cut", "c@t"]Classi per cifre, caratteri e spazi
Le classi di caratteri abbreviate coprono i gruppi più comuni:
\d— una cifra (0-9)\w— un carattere di parola (lettera, cifra o trattino basso)\s— uno spazio bianco (spazio, tabulazione o a capo)
import re
print(re.findall("\d", "a1b2c3")) # ["1", "2", "3"]
print(re.findall("\w", "a_1!")) # ["a", "_", "1"]
print(re.findall("\s", "a b\tc")) # [" ", "\t"]Classi negate
Le versioni maiuscole negano la classe:
\D— qualsiasi carattere che NON sia una cifra\W— un carattere che NON sia un carattere di parola\S— un carattere che NON sia uno spazio bianco
import re
print(re.findall("\D", "a1b2")) # ["a", "b"]
print(re.findall("\S", "a b c")) # ["a", "b", "c"]Insiemi di caratteri personalizzati con [ ]
Le parentesi quadre definiscono un insieme personalizzato: corrispondono a uno qualsiasi dei caratteri elencati al loro interno. Gli intervalli utilizzano un trattino.
[aeiou]— qualsiasi vocale[A-Za-z]— qualsiasi lettera[0-9]— qualsiasi cifra (equivalente a\d)
import re
print(re.findall("[A-Za-z]", "ab12CD")) # letters only
print(re.findall("[aeiou]", "hello")) # ["e", "o"]Insiemi negati con [^ ]
Un accento circonflesso all'interno delle parentesi nega l'insieme: corrisponde a qualsiasi carattere NON elencato.
[^abc] corrisponde a qualsiasi carattere tranne a, b o c. (Un accento circonflesso all'esterno delle parentesi è un'ancora, che vedrà nella prossima sezione.)
import re
print(re.findall("[^aeiou ]", "hello world"))
# consonants: ["h", "l", "l", "w", "r", "l", "d"]Ancore: ^ e $
Le ancore corrispondono a posizioni, non a caratteri:
^— l'inizio della stringa (o della riga)$— la fine della stringa (o della riga)
^Hello corrisponde solo se il testo inizia con "Hello".
import re
print(bool(re.search("^Hello", "Hello world"))) # True
print(bool(re.search("world$", "Hello world"))) # True
print(bool(re.search("^world", "Hello world"))) # FalseQuantificatori: + * ?
I quantificatori indicano quante volte si ripete l'elemento precedente:
+— una o più volte*— zero o più volte?— zero o una volta (opzionale)
import re
print(re.findall("\d+", "abc 123 de 45")) # ["123", "45"]
print(re.findall("ab*", "a ab abb")) # ["a", "ab", "abb"]
print(re.findall("colou?r", "color colour")) # both matchQuantificatore di intervallo {n,m}
Le parentesi graffe indicano un numero esatto o un intervallo:
{3}— esattamente 3{2,4}— tra 2 e 4{2,}— 2 o più
È ideale per elementi di lunghezza fissa, come i codici ZIP o le parti dei numeri di telefono.
import re
print(re.findall("\d{3}", "12 345 6789")) # ["345", "678"]
print(re.findall("\d{2,4}", "1 22 3333 55555"))Combinare gli elementi
I pattern reali combinano classi, insiemi, ancore e quantificatori. Questo pattern corrisponde a un semplice numero di telefono statunitense come 555-123-4567:
\d{3}-\d{3}-\d{4} — tre cifre, trattino, tre cifre, trattino, quattro cifre.
import re
text = "Call 555-123-4567 or 999-888-7777"
print(re.findall("\d{3}-\d{3}-\d{4}", text))
# ["555-123-4567", "999-888-7777"]Verifica rapida: quantificatori
Desidera trovare una o più cifre consecutive.
Riepilogo: pattern e classi di caratteri
Ora conosce gli elementi fondamentali delle regex:
- Testo letterale e carattere jolly
. - Classi
\d \w \se relative negazioni\D \W \S - Insiemi personalizzati
[A-Za-z]e insiemi negati[^abc] - Ancore
^e$ - Quantificatori
+ * ?e intervalli{n,m}
Prossimo argomento: le funzioni del modulo Python re.
Domande Frequenti
La lezione «Pattern regex e classi di caratteri» è gratuita?
Sì — il testo completo di «Pattern regex e classi di caratteri» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Pattern regex e classi di caratteri»?
\d, \w, \s, ., ^, $, +, *, ?, {n,m}, classi di caratteri [a-z] e negazione [^...]. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Pattern regex e classi di caratteri»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Pattern regex e classi di caratteri
- Modulo re: search, match, findall, sub
- Gruppi di cattura e gruppi denominati
- Pulizia del testo per l’IA con le regex