Come utilizzare le espressioni regolari (Regex) in Python
Padroneggia le espressioni regolari di Python utilizzando il modulo re integrato. Impara la corrispondenza delle stringhe, la ricerca di modelli, la ricerca di tutte le occorrenze e la sostituzione del testo.
Panoramica
Le espressioni regolari, comunemente note come regex, sono modelli potenti utilizzati per abbinare, cercare e manipolare stringhe di testo in base a modelli specifici. Regex è ampiamente utilizzato per la verifica della posta elettronica, la convalida del numero di telefono, il web scraping, l'analisi dei log e le attività di ricerca e sostituzione del testo. Python fornisce funzionalità regex complete tramite il modulo `re` integrato.
Il modulo "re" offre diverse funzioni primarie a seconda del tuo obiettivo. La funzione "re.search(pattern, string)" analizza una stringa e restituisce un oggetto di corrispondenza per la prima occorrenza del modello. La funzione "re.match(pattern, string)" è simile ma cerca solo dall'inizio della stringa. Se vuoi recuperare tutte le istanze di un pattern in un blocco di testo, `re.findall(pattern, string)` le restituisce come un elenco di stringhe.
I modelli Regex utilizzano metacaratteri speciali come "\d" per le cifre, "\w" per i caratteri alfanumerici, "+" per una o più occorrenze e "*" per zero o più. Quando si scrive regex in Python, è pratica standard utilizzare stringhe letterali grezze (con il prefisso `r`, come `r"\d+"`) per impedire a Python di trattare le barre rovesciate come sequenze di escape.
Codice e output di esecuzione
Questo script dimostra la convalida delle strutture del formato, l'estrazione di token numerici e la sostituzione di modelli corrispondenti utilizzando il modulo re.
import re
# 1. Searching for a pattern in text
log_message = "ERROR: Connection timeout at 04:30:15 on port 8080"
pattern_port = r"port \d+"
match = re.search(pattern_port, log_message)
if match:
print("Found port pattern:", match.group())
# 2. Extracting all email addresses from a block of text
text = "Contact sales@pyrun.xyz or support@example.com for help."
pattern_email = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
emails = re.findall(pattern_email, text)
print("Extracted emails:", emails)
# 3. Replacing patterns using re.sub
date_string = "2026/05/25"
# Replace slashes with dashes
clean_date = re.sub(r"/", "-", date_string)
print("Replaced Date:", clean_date)Found port pattern: port 8080
Extracted emails: ['sales@pyrun.xyz', 'support@example.com']
Replaced Date: 2026-05-25Implementazione passo dopo passo
- Importa il modulo re integrato.
- Definisci modelli di ricerca regex utilizzando stringhe non elaborate, come r"\d+" per evitare problemi con la sequenza di escape.
- Utilizzare re.search() per trovare la prima occorrenza o re.findall() per raccogliere tutte le sottostringhe corrispondenti.
- Utilizzare re.sub(pattern, replace, string) per eseguire sostituzioni basate su pattern all'interno del testo.
Domande frequenti
Qual è il vantaggio di utilizzare stringhe grezze (r"...") per i modelli regex?
Le stringhe non elaborate trattano le barre rovesciate come caratteri letterali anziché come caratteri di escape. Ad esempio, r"\n" rappresenta una barra rovesciata seguita da una "n", mentre "\n" rappresenta un carattere di nuova riga.
Come posso verificare se una corrispondenza regex ha avuto esito positivo?
re.search() e re.match() restituiscono un oggetto di corrispondenza in caso di successo o None se non viene trovata alcuna corrispondenza. Dovresti controllare il risultato utilizzando un'istruzione condizionale (ad esempio, if match:).
Argomenti correlati
Scopri come sostituire caratteri o sottostringhe nelle stringhe Python. Padroneggia il metodo replace(), i limiti di conteggio e l'utilizzo della traduzione per più caratteri.
Come dividere una stringa in PythonScopri come dividere una stringa in un elenco in Python utilizzando il metodo split(). Esplora la suddivisione per spazi, virgole, ritorni a capo e la limitazione del numero di suddivisioni.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Cicli Python
Scopri come utilizzare i loop Python per eseguire iterazioni sui dati. Padroneggia le best practice sui cicli for, while, interruzione, continua e loop con esempi interattivi.
Foglio informativo sui metodi delle stringhe Python
Una guida di riferimento completa per la manipolazione delle stringhe Python. Padroneggia la formattazione, la ricerca, la divisione, la sostituzione e il controllo delle proprietà delle stringhe.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.