Python 3.15: re.match() viene soft-deprecata; arriva re.prefixmatch()
Testo scritto con l’intelligenza artificiale a partire da una fonte citata, senza revisione umana prima della pubblicazione.
La squadra di rilascio annuncia la soft deprecation di re.match() e introduce re.prefixmatch() come nome più chiaro; si raccomandano re.search() e re.fullmatch().
Python 3.15 sconsiglia re.match() e introduce il nome alternativo re.prefixmatch(). Lo annuncia Hugo van Kemenade, release manager della versione, in una nota dell’11 settembre 20261.
“Soft deprecation” in questo contesto è una raccomandazione. Evitare l’API nel nuovo codice, senza scadenze né piani di rimozione. È guida, non rottura dell’API1.
Il bersaglio è re.match(), definita “venerabile ma profondamente confusa”. La funzione verifica il pattern solo all’inizio della stringa. Il nuovo nome rende esplicito l’ancoraggio sul prefisso1.
Van Kemenade indica scelte chiare per i casi comuni:
- re.search() se il pattern può comparire in qualunque punto della stringa;
- re.fullmatch() se l’intera stringa deve corrispondere al pattern;
- re.prefixmatch() quando bisogna controllare solo l’inizio1.
La modifica entra in Python 3.15. Due azioni: applicare la soft deprecation a re.match() e offrire un nome più chiaro con lo stesso comportamento. Nessuna modifica semantica, solo naming e documentazione1.
Il punto è la chiarezza. “match” può far pensare a una ricerca libera o a un confronto totale. “prefixmatch” elimina l’ambiguità: indica l’ancoraggio all’inizio della stringa. Così l’intento del codice risulta esplicito dove serve verificare l’avvio della stringa1.
La raccomandazione è netta ma non punitiva. Si chiede di non usare re.match() nel nuovo codice. Si preferiscono re.search() o re.fullmatch() a seconda del caso. Il nome introdotto copre l’esigenza residua: testare il prefisso. Il resto del codice esistente non cambia e non riceve avvisi di rimozione1.
Per gli sviluppatori, la traccia operativa è breve:
- trovare un pattern ovunque: usare re.search();
- validare tutta la stringa: usare re.fullmatch();
- vincolare l’espressione all’inizio: usare re.prefixmatch().
La comunicazione resta circoscritta al modulo re e al ciclo di rilascio di Python 3.15. Non entra in dettagli ulteriori, non promette deprecazioni dure, non anticipa date. Indica come scrivere codice nuovo oggi e come leggere il codice domani: quando serve l’inizio della stringa, il nome lo dice. Il resto passa per gli strumenti già noti, senza duplicazioni di ruoli fra funzioni1.
La nota chiarisce infine che l’obiettivo è evitare fraintendimenti radicati nel lessico storico di re.match(). L’alternativa nominativa offre un percorso semplice per chi adotta Python 3.15: chiamare le cose con il loro comportamento.
Fonti
Come è nato questo articolo Scritto da un sistema di intelligenza artificiale, con controlli automatici
Millebit non ha giornalisti che scrivono gli articoli: li scrive un motore editoriale basato su modelli di intelligenza artificiale, a partire dalle fonti elencate qui sopra. Prima di uscire, ogni testo passa questi controlli:
- Fedeltà alle fonti. Un secondo passaggio toglie ogni affermazione che le fonti non sostengono.
- Anti-cliché. Un filtro scarta frasi fatte, enfasi e tic della prosa artificiale.
- Giudizio editoriale. Un modello valuta il pezzo su sette criteri (apertura, chiarezza, economia, concretezza, voce, struttura, fedeltà) e sotto 7,8/10 non si pubblica.
I controlli riducono gli errori ma non li eliminano: un modello può fraintendere una fonte. Per le decisioni importanti, risali alla fonte originale. Se trovi un errore, segnalacelo.
Per vedere Millebit nelle notizie principali di Google, aggiungilo alle tue fonti preferite. Oppure segui l’edizione di oggi, il feed RSS o La Sintesi.