0Pricing
Learn AI with Python · Lezione

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")))  # False

Quantificatori: + * ?

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 match

Quantificatore 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 \s e 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

  1. Pattern regex e classi di caratteri
  2. Modulo re: search, match, findall, sub
  3. Gruppi di cattura e gruppi denominati
  4. Pulizia del testo per l’IA con le regex
← Torna a Learn AI with Python