Python Regex: corrispondenza dei modelli con il modulo re
Padroneggia le espressioni regolari (Regex) in Python. Impara a cercare, abbinare, dividere e sostituire i dati delle stringhe utilizzando la libreria re integrata.
Panoramica
Le espressioni regolari (spesso abbreviate in regex) sono un mini-linguaggio utilizzato per la ricerca avanzata di testo, la corrispondenza di stringhe e la manipolazione. Invece di controllare semplici valori di stringa, regex ti consente di definire modelli complessi da cercare all'interno di enormi corpi di testo. Ad esempio, trovare tutti gli indirizzi email, i numeri di telefono o gli URL in un documento è semplice da esprimere in regex, ma incredibilmente complesso da scrivere utilizzando i normali metodi di stringa.
Python fornisce il supporto integrato per le espressioni regolari tramite il modulo `re`. Il modulo include funzioni critiche come `re.search()` per trovare la prima corrispondenza, `re.findall()` per recuperare tutte le sottostringhe corrispondenti come elenco e `re.finditer()` per scorrere gli oggetti della corrispondenza. Ogni oggetto match fornisce metadati, come l'indice esatto della posizione iniziale e finale della sottostringa corrispondente e il testo corrispondente stesso.
I modelli regex utilizzano metacaratteri speciali: `\d` corrisponde a qualsiasi cifra, `\w` corrisponde a caratteri alfanumerici, `+` corrisponde a una o più ripetizioni e le parentesi `[...]` definiscono i set di caratteri. Il raggruppamento con parentesi `(...)` consente di estrarre parti specifiche di un modello. Inoltre, `re.sub()` ti consente di cercare un modello e sostituirlo con una nuova stringa. Sebbene l'espressione regolare abbia una curva di apprendimento ripida, padroneggiarla ti fornisce uno strumento incredibilmente veloce e versatile per l'elaborazione del testo.
Codice e output di esecuzione
Utilizzo del modulo re per convalidare ed estrarre componenti di un indirizzo email.
import re
text = "Contact support at info@pyrun.xyz or developer@pyrun.xyz today."
# Pattern to match email addresses
email_pattern = r"([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"
# Find all matches
emails = re.findall(email_pattern, text)
print("Emails found:")
for user, domain in emails:
print(f"User: {user} | Domain: {domain}")
# Redacting emails using re.sub
redacted_text = re.sub(email_pattern, "[REDACTED]", text)
print(f"\nRedacted Text:\n{redacted_text}")Emails found:
User: info | Domain: pyrun.xyz
User: developer | Domain: pyrun.xyz
Redacted Text:
Contact support at [REDACTED] or [REDACTED] today.Implementazione passo dopo passo
- Convalida degli input di formato (e-mail, telefoni, password)
- Analisi dei registri di accesso al server per i codici di stato
- Estrazione di informazioni da HTML non elaborato e report di ribasso
Domande frequenti
Qual è il significato del prefisso "r" nei modelli regex?
Denota una "corda grezza". Le stringhe non elaborate trattano le barre rovesciate (\) come caratteri letterali invece che come caratteri di escape, evitando conflitti di sintassi con i caratteri jolly regex.
Qual è la differenza tra re.match e re.search?
re.match controlla solo una corrispondenza che inizia proprio all'inizio della stringa, mentre re.search scansiona l'intera stringa per trovare una corrispondenza.
Argomenti correlati
Padroneggiare la manipolazione delle stringhe in Python. Scopri metodi di stringa, sezioni, concatenazione e tecniche di formattazione con esempi di codice chiari ed eseguibili.
I/O di file PythonScopri come leggere e scrivere file in Python. Padroneggia open(), read(), write() e i gestori di contesto per gestire le operazioni sui file in modo sicuro senza perdite di risorse.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Come ordinare un elenco in Python
Scopri come ordinare un elenco in Python utilizzando il metodo sort() e la funzione sorted(). Scopri l'ordinamento delle chiavi personalizzato e gli esempi di ordine inverso.
Cheat sheet dei modelli Python Regex (ri modulo).
Guida di riferimento per le espressioni regolari Python. Impara i modelli di corrispondenza, ricerca, trova tutto, sub e regex essenziali.
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.